我正在使用wix为几个.net Web应用程序构建一个安装程序。我有两个功能,其中一个在IIS中的默认网站下安装几个虚拟目录/应用程序。第二个功能创建一个单独的网站,其中包含一个虚拟目录。
问题是当我安装这两个功能时,卸载期间不会删除默认网站下的虚拟目录(来自功能1)。奇怪的是,如果我只安装功能1(排除功能2),则卸载适用于功能1,并且虚拟目录将被删除。
我是wix的新手,我猜我的product.wxs出了问题,或者有些东西我不理解。想法?
以下是我的product.wxs文件中的示例代码段:
<Feature Id="feature1" Title="feature1" Description="feature 1 description" Level="1" ConfigurableDirectory="INSTALLDIR" Display="expand">
...
<ComponentGroupRef Id="IIS_Feature1" />
</Feature>
<Feature Id="feature2" Title="feature2" Description="feature 2 description" Level="1" ConfigurableDirectory="INSTALLDIR" Display="expand">
...
<ComponentGroupRef Id="IIS_Feature2" />
</Feature>
<Directory Id="TARGETDIR" Name="SourceDir">
...
<Directory Id="ROOT_DRIVE">
<Directory Id="Inetpubdir" Name="inetpub">
<Directory Id="wwwrootdir" Name="wwwroot" />
<Directory Id="wwwrootcustom" Name="wwwroot-custom" />
</Directory>
</Directory>
</Directory>
<ComponentGroup Id="IIS_Feature1">
<Component Id="IIS_WebApp1" Guid="some-guid-1" Directory="wwwrootdir" KeyPath="yes">
<iis:WebVirtualDir Id="WebApp1VirtualDir" Alias="webapp1" WebSite="DefaultWebSite" Directory="WEBAPP1DIR">
<iis:WebApplication Id="WebApp1IISApplication" Name="webapp1" />
</iis:WebVirtualDir>
</Component>
<Component Id="IIS_WebApp2" Guid="some-guid-2" Directory="wwwrootdir" KeyPath="yes">
<iis:WebVirtualDir Id="WebApp2VirtualDir" Alias="webapp2" WebSite="DefaultWebSite" Directory="WEBAPP2DIR">
<iis:WebApplication Id="WebApp2IISApplication" Name="webapp2" />
</iis:WebVirtualDir>
</Component>
<Component Id="IIS_WebApp3" Guid="some-guid-3" Directory="wwwrootdir" KeyPath="yes">
<iis:WebVirtualDir Id="WebApp3VirtualDir" Alias="webapp3" WebSite="DefaultWebSite" Directory="WEBAPP3DIR">
<iis:WebApplication Id="WebApp3IISApplication" Name="webapp3" />
</iis:WebVirtualDir>
</Component>
</ComponentGroup>
<ComponentGroup Id="IIS_Feature2">
<Component Id="IIS_WebApp4" Guid="some-guid-4" Directory="wwwrootcustom" KeyPath="yes">
<iis:WebSite Id="WebApp4Site" Description="Web App 4 Site" Directory="wwwrootcustom" AutoStart="yes">
<iis:WebVirtualDir Id="WebApp4VirtualDir" Alias="webapp4" Directory="WEBAPP4DIR">
<iis:WebApplication Id="WebApp4IISApplication" Name="webapp4" />
</iis:WebVirtualDir>
<iis:WebAddress Id="WebApp4SiteAddr" Secure="yes" Port="443"/>
</iis:WebSite>
</Component>
</ComponentGroup>
答案 0 :(得分:0)
在我的安装程序的早期开发过程中发现了此问题。随着更多的开发工作和其他问题的解决,我不再看到这种行为。
我从来没有真正弄清楚究竟发生了什么,但我在测试过程中注意到安装程序是否有一个或多个问题,在卸载过程中会留下某些(看似无关的)组件......