5
votes

I have a solution hosted in Team Services and using its build services.

The solution also includes a project to build a MSI file using the WiX toolset. This works great locally and I have integrated the toolset binaries into the repository to enable it on the build server too as described in this guide.

But the build process reports the project to fail to build:

light.exe (0, 0) Error executing ICE action 'ICE01'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.".

This repeats from ICE01 to ICE07 and is followed by:

light.exe (0, 0) An unexpected Win32 exception with error code 0x643 occurred: Action - 'ICE09' Fatal error during installation

I have also tried to supress the validations as mentioned in this SO question. This is basically about adding the following to the wix project file:

<PropertyGroup>
    <SuppressValidation>true</SuppressValidation>
</PropertyGroup>

This works - but I am courious if this is the best way as it does not feel quite right. What is the correct way to run WiX in Visual Studio Team Services?

1

1 Answers

9
votes

Suppressing ICE validation is the work around for now if you want to build the WiX project with VSTS Hosted Build Agent since the hosted build agent does not provide administrator privileges.

If you are uncomfortable with suppressing validation, you could always make the PropertyGroup conditional on the build being on a build agent, so that validation is done as normal in a desktop build:

<PropertyGroup Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">
  <SuppressValidation>true</SuppressValidation>
</PropertyGroup>

Another alternative way is deploying your own build agent and then run the build agent with administrator permission.

By the way, the WiX toolset has been installed on VSTS Hosted Build Agent, so you don't need to follow that guide to check in the WiX toolset anymore. Refer to this list for the installed software.