[英]Wix MSI installer fail when changing build image in Azure Pipelines
正如此處所指出的,Azure Pipelines 中的一堆舊圖像將在幾天內被刪除。 幾年來,我們已經在 Azure Pipelines 中使用WIX構建了一些代碼 - 使用其中一個已棄用的圖像 (vs2015-win2012r2)。
如果我將構建映像更改為例如 vs2017-win2016,我會從 Azure Pipeline 收到此錯誤:
##[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
我還可以看到 Azure Pipeline 映像vs2017-win2016安裝了 WIX3.11,而Vs2015-Server2012R2安裝了 WIX3.10。
所以一切都合適......我的解決方案無法構建,因為它的目標是 WIX 3.10,但新映像安裝了 WIX 3.11。
所以我的 C# 安裝程序項目中的某些內容仍然引用了 Wix 3.10 並且失敗了,因為新的 3.11 具有一些 Wix 3.10 沒有的功能。
那可能是什么?
如您vs2017-win2016
, vs2017-win2016
圖像使用vs2017-win2016
版本是3.11
。 而且,不幸的是,到目前為止,我們不支持安裝自定義wix
版本來覆蓋位於托管代理中的那個版本。
在您的場景中,您可以考慮使用一種解決方法:設置私有代理來構建您的項目。 只需確保安裝了私有代理的本地計算機中存在wix 3.10
。
使用此私有代理構建時,系統會從本地系統中檢測相應的工具。 因此,如果您確保在私有代理所在的機器上有wix 3.10
,那將會成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.