【发布时间】:2012-12-04 19:24:29
【问题描述】:
我正在努力使用 wix 3.6.3303.1/4.0.12.0 将基于 com 的 isapi dll 全局安装到 iis 7.5 中。
我有以下 wix 配置 (full config here):
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="IsapiDll" Guid="ADD-GUID-HERE">
<File Id="isapidll" Name="isapi.dll" Source="isapi.dll" />
</Component>
<Component Id="IisFilter" Guid="ADD-GUID-HERE">
<CreateFolder />
<iis:WebFilter Id="IisFilter" Name="MyIsapi" Path="[INSTALLFOLDER]isapi.dll" LoadOrder="last" Description="MyIsapi" />
</Component>
</ComponentGroup>
</Fragment>
当我在带有 IIS7.5 的 Windows 7 32 位上运行时,我的 msi 日志中收到以下错误:
WriteIIS7ConfigChanges: Error 0x8007000e: Failed while finding IAppHostElement filter/@name=(null)
WriteIIS7ConfigChanges: Error 0x8007000e: Failed to delete filter
WriteIIS7ConfigChanges: Error 0x8000ffff: Unexpected IIS Config action specified for global filter
WriteIIS7ConfigChanges: Error 0x8000ffff: Failed to configure IIS filter global.
WriteIIS7ConfigChanges: Error 0x8000ffff: WriteIIS7ConfigChanges Failed.
我担心这个问题是 wix 本身的错误。 CreateGlobalFilter() 在赋值之前将 pwzFilterName 传递给 DeleteCollectionElement()。这会导致 Iis7FindAppHostElementString() 被调用时使用一个空 wzAttributeValue 值,这似乎是错误的原因。
我当然可以如痴如醉,并且很高兴被指向正确的方向......
更新: 我现在玩过网站级别的安装,并通过添加 WebSite 属性和元素来实现。 Config here
编辑:将路径属性更改为正确的格式。
【问题讨论】: