WiX和iis(无法连接到互联网信息服务器)

时间:2011-02-16 04:36:54

标签: iis wix

我尝试创建安装程序,也创建了网站。 我使用以下代码

....
<DirectoryRef Id="WEBFOLDER">
    <Component Id="WebLibraries" Guid="77532F98-BF0B-4b9d-98AF-15618691A090" KeyPath="yes">
        <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" Directory="WEBFOLDER">
            <iis:WebAddress Id="AllUnassigned" Port="80" />
        </iis:WebSite>
    </Component>
</DirectoryRef>
....
<Feature Id="WebSite" Level="1" Title="Web site">
    <ComponentRef Id="WebLibraries" />
</Feature>
....

但是当我尝试在未安装iis的机器上安装创建的软件包时,即使我没有检查此功能,我也收到了此消息:

无法连接到互联网信息服务器

有人可以帮我解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您正在未安装IIS的计算机上安装软件包。你会期待什么? :)

说实话,WiX IIsExtension(定义WebSite元素的那个)使用IIS组件的API来实际完成它的工作。对于WiX v3.0,它甚至要求在IIS 7中打开IIS 6兼容性才能正常工作。

包含WebSite元素的组件未受到限制。这意味着它将永远安装。安装后,IIsExtension会尝试创建一个在其中定义的网站(如果我们简短地讲述这个故事)。

因此,我建议您执行以下操作(如果您希望在目标计算机上跳过安装程序的IIS部分):

  • 添加启动条件以检查是否已安装IIS组件(您可以依赖IIsExtension本身定义的IISMAJORVERSION属性)
  • 使用“NOT IISMAJORVERSION”条件调整依赖于IIS的组件(或功能)

因此,如果未设置IISMAJORVERSION属性(未安装IIS),则不会安排组件进行安装,并且IIS自定义操作将不会运行。

P.S。我最初的SKIPCONFIGUREIIS属性是“全有或全无”切换,并不适合您的情况。