在WiX中将虚拟目录转换为Web应用程序

时间:2010-09-16 12:17:13

标签: iis deployment wix

每当安装功能A或B时,我都会创建一个新的WebSite

<Component Id="IIS.HelloWorld" Guid="6FA5EF90-C9D9-463C-9CC7-0410670AFBD1" Directory="TARGETDIR">
  <iis:WebSite Id="IIS.HelloWorld" Description="Hello World for Web" Directory="INSTALLDIR">
    <iis:WebAddress Id="HelloWorldAddress" IP="*" Port="8080"/>
  </iis:WebSite>
</Component>

WebSite指向INSTALLDIR(Say C:\ MyFiles)。在INSTALLDIR下面,我还有2个额外的文件夹:服务(C:\ MyFiles \ Service)和 Web (C:\ MyFiles \ Web)

由于WebSite指向INSTALLDIR,所有子目录(服务 Web )都被自动视为虚拟目录(?) - 我可以看到它们已链接通过IIS管理控制台,我可以通过浏览器访问它们。

但是,它们需要“转换”为应用程序(通过右键单击虚拟目录并选择“转换为应用程序”手动完成,以使它们正常工作(它们包含ASPX和ASMX文件)。

所以我添加了以下组件以尝试将它们转换为“应用程序”:

<Component Id="IIS.HelloWorld.WebSite.VirtualDirectory" Guid="GUID-44D1-48D9-BB3C-4B0126FB83E5" Directory="TARGETDIR">
  <iis:WebVirtualDir Id="IIS.HelloWorld.WebSite.VirtualDirectory" Alias="Service" Directory="INSTALLDIR.WebSite" WebSite="IIS.HelloWorld">
    <iis:WebApplication Id="IIS.HelloWorld.WebSite.VirtualDirectory" Name="Service"/>
  </iis:WebVirtualDir>
</Component>

但虚拟目录未转换为“应用程序”;它们仍然只是虚拟目录。

问题:如何将虚拟目录转换为WiX中的应用程序?或者处理这种情况的正确方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我的坏。我将错误的虚拟目录别名绑定到错误的Web应用程序名称。

此代码有效:

<Component Id="IIS.HelloWorld.WebSite.VirtualDirectory" Guid="GUID-44D1-48D9-BB3C-4B0126FB83E5" Directory="TARGETDIR">
  <iis:WebVirtualDir Id="IIS.HelloWorld.WebSite.VirtualDirectory" Alias="Web" Directory="INSTALLDIR.WebSite" WebSite="IIS.HelloWorld">
    <iis:WebApplication Id="IIS.HelloWorld.WebSite.VirtualDirectory" Name="Web"/>
  </iis:WebVirtualDir>
</Component>