在VSTS上构建wixproj

时间:2017-05-01 16:21:40

标签: wix azure-devops azure-pipelines

我正在尝试在VSTS上构建一个wixproj但到目前为止我只收到以下消息:

  

SetupProject1 \ SetupProject1.wixproj(27,5):错误:必须安装WiX Toolset v3构建工具才能构建此项目。要下载WiX工具集,请参阅http://wixtoolset.org/releases/

对于我的测试,我在计算机上使用 Wix Toolset v3.11RC2 创建了一个新的wixproj,并将其链接到VSTS上的新回购。

VSTS托管代理有 Wix Toolset v3.10 installed

VSTS构建使用VS Build Task,构建平台设置为x86,以便发现AnyCPU错误。

我已尝试使用Hosted和Hosted VS2017代理但没有运气并且还尝试了默认的Wix导入:

<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />

那些推荐用于VS2017:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(WixCATargetsPath)" Condition=" '$(WixCATargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.CA.targets" Condition=" '$(WixCATargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.CA.targets') " />

我是否需要配置某些内容或者目前无法配置?

2 个答案:

答案 0 :(得分:4)

您应该安装WiX工具集 v3.10 v3.11 项目模板需要相应的工具集版本( v3.11 )。

因此,如果您想使用v3.11,则需要设置on premise build agent。 BTW,VS2017需要v3.11工具集。

关于v3.10工具集,请不要安装Wix Toolset Visual Studio 2015 extension,已经提供了WiX v3.10扩展,所以只需直接安装Wix v3.10工具集。

如果您已经安装了Wix Toolset Visual Studio扩展,则可以使用v3.10的简单步骤:

  1. 删除Wix Toolset VS exteion
  2. 卸载WiX v3.10工具集
  3. 安装Wix v3.10工具集
  4. 在VS2015中创建一个新的Wix项目
  5. 添加到源代码管理和构建。
  6. 类似的问题:The WiX Toolset v3 build tools must be installed to build this project after applying template

答案 1 :(得分:0)

在@ starain-MSFT回答后总结我的研究:

可以在您的计算机上使用VS2017 + Wix3.11,并使用VS2015 + Wix3.10构建VSTS,您只需:

  • 使用Wix3.10中的模板:

    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
    
     ...
    
    <Import Project="$(WixTargetsPath)" />
    
  • 避免任何C# 7 specific

如果您被ICE警告阻止,属性SuppressValidation设置为true可能会有所帮助。

如果您的构建在VSTS上挂起,请检查计算机上的警告或将.wixproj中的RunWixToolsOutOfProc属性设置为true。