Reputation: 2013
As noted here a bunch of legacy images in Azure Pipelines are being removed in a few days. We have had some code using WIX building in Azure Pipelines for a few years now - using one of the images being deprecated (vs2015-win2012r2).
If I change my build image to e.g. vs2017-win2016, I get this error from my 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.
UPDATE:
I can now also reproduce this locally. And I have found out that one of the changes from WIX 3.10x to 3.11x is this particular parameter:
AllowDuplicateDirectoryIds
I can also see that the Azure Pipeline image vs2017-win2016 has WIX3.11 whereas the Vs2015-Server2012R2 has WIX3.10 installed.
So everything fits ... my solution fails to build because it was targeted WIX 3.10 but the new image has WIX 3.11 installed.
So something inside my C# installer project still references Wix 3.10 and fails because the new 3.11 has some functionality that Wix 3.10 did not have.
What could that be?
Upvotes: 0
Views: 939
Reputation: 18978
As what you found, the wix version that vs2017-win2016
image used is 3.11
. And also, unfortunately, we does not support to install customized wix
version to override the one that located in Hosted agent until now.
In your scenario, you can consider to use one work around: set up private agent to build your project. Just ensure it is wix 3.10
exists in your local machine that private agent installed.
When build with this private agent, the system will detect corresponding tools from local system. So, it would be succeed if you ensure there has wix 3.10
located in the machine that private agent located.
Upvotes: 1