【问题标题】:How to leave a virtual directory after uninstall卸载后如何离开虚拟目录
【发布时间】:2012-11-26 20:44:04
【问题描述】:

我在 IIS 中创建了一个网站。我想在它下面创建一个虚拟目录,然后在它下面创建另一个。当我卸载时,如果第一个虚拟目录中有东西,我只想卸载最后一个虚拟目录。 (我不在乎是否没有 - 可以卸载或离开它。)

-Website
|-VirtualDirectory1
||-VirtualDirectory2

这是我当前的组件:

version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
  <!-- Setup IIS. -->
  <Fragment>
    <!-- Since these are outside of a component, they're not being created, just referenced.
         http://www.wintellect.com/cs/blogs/jrobbins/archive/2011/01/25/install-a-new-virtual-directory-to-default-web-site-with-wix.aspx -->
    <iis:WebSite Id="Services" Description="Services">
      <iis:WebAddress Id="ServicesBindings" Header="[Hostname]" Port="80" />
    </iis:WebSite>
    <iis:WebAppPool Id="ToolkitServicesAppPool" Name="Toolkit Services" />

    <ComponentGroup Id="IISComponents" Directory="InstallDirectory">
      <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes">
        <iis:WebVirtualDir Id="ToolkitDir" Alias="Toolkit" Directory="Toolkit" WebSite="Services">
          <iis:WebVirtualDir Id="AppDir" Alias="App" Directory="InstallDirectory">
            <iis:WebApplication Id="AppApp" Name="App" WebAppPool="ToolkitServicesAppPool" />
          </iis:WebVirtualDir>
        </iis:WebVirtualDir>
      </Component>
    </ComponentGroup>
  </Fragment>
</Wix>

您不能将 WebVirtualDir 放在 WebSite 下,因为它们不允许在组件之外使用,因此我无法手动创建 VirtualDirectory1 并使用它。我也尝试使用WebDir(随机)定义VirtualDirectory1,但是不能在WebDir下定义WebVirtualDir。没有办法引用虚拟目录,所以我不能把它放到一个永久的组件中,然后从另一个组件中引用它。

这基本上是asked before,但没有答案。任何想法将不胜感激。

【问题讨论】:

    标签: wix


    【解决方案1】:

    你可以这样做:

    1. 创建一个包含根 vdir 的永久组件。或者您可以在多个产品之间共享该组件,这样在所有产品都没有卸载的情况下,root vdir 不会被删除。
    2. 使用别名“root_vdir_name/new_vdir_name”创建另一个组件。

      <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes" Permanent="yes">
        <iis:WebVirtualDir Id="ToolkitDir" Alias="Toolkit" Directory="Toolkit" WebSite="Services" />
      </Component>
      
      <Component Id="Toolkit.Services.App" Guid="PUT-GUID-HERE" KeyPath="yes">
        <iis:WebVirtualDir Id="AppDir" Alias="Toolki/App" Directory="InstallDirectory" WebSite="Services">
          <iis:WebApplication Id="AppApp" Name="App" WebAppPool="ToolkitServicesAppPool" />
        </iis:WebVirtualDir>
      </Component>
      

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 2012-02-14
      • 1970-01-01
      • 2011-07-08
      • 2010-11-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多