看起来你要构建的项目来自VS2017,它的C ToolSet是V141。
正如您提到的,您使用的是工具集为 V142 的 VS2019。
修复它:
1.我们可以将解决方案重新定位到V142 ToolSet,然后VS2019 msbuild工具构建好(在VS2019中打开.sln,右键solutionName并选择重新定位)
2.另外,您可以选择在VS2019中安装ToolSet V141。
在 VS2019 中,转到 Tools=>Get Tools and Features=> 为 VS2017 安装 C 构建工具:
(假设您的项目是 X64/X86,而不是 Arm)
点击修改安装V141 Toolset,新建一个C 工程,右键Project=>properties查看是否安装成功:
另外,您可能已经安装了 ToolSet,并且您得到的错误是由于错误的 msbuild 路径或参数造成的。
所以请确保 VS2019 的 msbuild 路径是:
C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildCurrentBinMSBuild.exe 更新:
在 vs2019 中安装工具集后尝试设置 VCTargetsPath: VCTargetsPath= C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv150。
【讨论】:
我已经按照你说的进行了上述设置。我的问题是 Build 不是仅通过 Jenkins 生成的。使用正常的 CMD 提示,我可以生成 Build。 @Random 相同的 msbuild 路径? 1.好的,请检查您是否设置了VCTargetsPath系统变量,它的值是多少?如果存在,请尝试删除它并检查它是否有帮助。 2.对于jenkins,它看起来类似于this issue,您可以尝试更改脚本并显式设置VCTargetsPath值。 在 vs2019 中安装工具集后的 VCTargetsPath= C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv150。 它在为 v150 路径设置 VCTargetsPath 后工作。谢谢。 @Random 很高兴知道它有帮助!如果我的回答有助于解决您的问题,请您帮忙将其标记为已接受的答案,这对其他有类似问题的成员有好处:)