我在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的正确方法是什么?
答案 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。