在Azure Pipelines中更改生成映像时Wix MSI安装程序失败

时间:2020-03-21 14:25:52

标签: wix azure-pipelines wix3.10

here所述,几天后将删除Azure Pipelines中的一堆旧图像。几年来,我们已经使用WIX在Azure Pipelines中进行构建了一些代码-使用其中一张已弃用的图像(vs2015-win2012r2)。

如果我将构建映像更改为例如vs2017-win2016,我从Azure管道收到此错误:

##[error]C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets(2439,7): Error
MSB4064: The "AllowDuplicateDirectoryIds" parameter is not supported by the "Light" task. 
Verify the parameter exists on the task, and it is a settable public instance property.

更新:

我现在也可以在本地复制它。而且我发现从WIX 3.10x到3.11x的变化之一就是这个特定参数:

AllowDuplicateDirectoryIds

enter image description here

我还可以看到Azure管道映像vs2017-win2016具有WIX3.11,而Vs2015-Server2012R2具有WIX3.10。

因此一切正常……我的解决方案无法构建,因为它的目标是WIX 3.10,但是新映像已安装了WIX 3.11。

因此,我的C#安装程序项目中的某些内容仍引用Wix 3.10并失败,因为新的3.11具有Wix 3.10所不具备的某些功能。

那会是什么?

1 个答案:

答案 0 :(得分:1)

您所发现的,vs2017-win2016图像使用的wix版本是3.11。而且,不幸的是,到目前为止,我们不支持安装自定义的wix版本以覆盖托管代理中的版本。

在您的方案中,您可以考虑使用一种解决方法:设置private agent来构建您的项目。只需确保私人代理安装的本地计算机中存在wix 3.10

使用此私有代理进行构建时,系统将从本地系统检测到相应的工具。因此,如果您确保私人代理程序所在的计算机中有wix 3.10,这将是成功的。