在Visual Studio Team Services中运行构建服务上的WiX(VS Online),错误LGHT0217,ICE01-07

时间:2016-07-09 21:07:07

标签: visual-studio wix azure-devops

我在Team Services中托管并使用其构建服务。

该解决方案还包括使用WiX工具集构建MSI文件的项目。 这在本地工作得很好,我已经将工具集二进制文件集成到存储库中,以便在构建服务器上启用它,如in this guide所述。

但构建过程报告项目无法构建:

  

light.exe(0,0)执行ICE操作'ICE01'时出错。最普遍的   这种ICE故障的原因是注册不正确   脚本引擎。见http://wixtoolset.org/documentation/error217/   有关详细信息以及如何解决此问题。以下字符串格式   外部UI消息记录器不期望:“Windows   无法访问安装程序服务。如果Windows,则会发生这种情况   安装程序未正确安装。联系您的支持人员   寻求帮助。“。

从ICE01到ICE07重复,然后是:

  

light.exe(0,0)意外的Win32异常,错误代码为0x643   发生:操作 - 'ICE09'安装期间发生致命错误

我也试过supress the validations as mentioned in this SO question。这基本上是关于将以下内容添加到wix项目文件中:

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

这是有效的 - 但如果这是最好的方式,我会很好,因为它感觉不太对劲。在Visual Studio Team Services中运行WiX的正确方法是什么?

1 个答案:

答案 0 :(得分:7)

由于托管构建代理不提供管理员权限,因此如果您想使用VSTS托管构建代理构建WiX项目,则暂时禁止ICE验证。

如果你对抑制验证感到不舒服,你总是可以使构建代理上的构建成为PropertyGroup的条件,以便在桌面构建中正常进行验证:

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

另一种替代方法是deploying your own build agent,然后使用管理员权限运行构建代理。

顺便说一句,WiX工具集已安装在VSTS Hosted Build Agent上,因此您无需再按照该指南检查WiX工具集。有关已安装的软件,请参阅this list