我在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>
您不能在WebSite下放置WebVirtualDir,因为它们不允许在组件外部使用,因此我无法手动创建VirtualDirectory1并使用它。我还尝试使用WebDir来定义VirtualDirectory1(随机),但是您无法在WebDir下定义WebVirtualDir。没有办法引用虚拟目录,因此我不能将其放入永久组件中,只是从另一个引用它。
这基本上是asked before但没有答案。任何想法都将不胜感激。
答案 0 :(得分:0)
你可以这样做:
使用别名“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>