Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis 默认网站下的wix虚拟目录未卸载,与其他功能冲突?_Iis_Wix_Wix3.5 - Fatal编程技术网

Iis 默认网站下的wix虚拟目录未卸载,与其他功能冲突?

Iis 默认网站下的wix虚拟目录未卸载,与其他功能冲突?,iis,wix,wix3.5,Iis,Wix,Wix3.5,我正在为几个.net web应用程序使用wix构建一个安装程序。我有两个功能,其中一个在IIS的默认网站下安装多个虚拟目录/应用程序。第二个特性创建了一个单独的网站,其中包含一个虚拟目录 <ComponentGroup Id="IIS_Feature1"> <Component Id="IIS_WebApp1" Guid="some-guid-1" Directory="wwwrootdir" KeyPath="yes"> <iis:WebVirtual

我正在为几个.net web应用程序使用wix构建一个安装程序。我有两个功能,其中一个在IIS的默认网站下安装多个虚拟目录/应用程序。第二个特性创建了一个单独的网站,其中包含一个虚拟目录

<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>
问题是,当我安装这两个功能时,默认网站下的虚拟目录(来自功能1)在卸载过程中不会被删除。奇怪的是,如果我只安装功能1(排除功能2),卸载功能1会正常工作,虚拟目录也会被删除

<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>
我是新来的wix,我猜我的产品有问题。wxs或者有一些我不理解的地方。想法

<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>
以下是my 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>
<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>

...
...

<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>

...

<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>

<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>


此问题是在我的安装程序的早期开发过程中发现的。随着更多的开发工作的完成和其他问题的解决,我不再看到这种行为

<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>
我从来没有真正弄清楚到底发生了什么,但我注意到,在测试期间,如果安装程序出现一个或多个错误,某些(看似无关的)组件将在卸载过程中留下

<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>