Microsoft.VisualBasic.Core.targets的MSBuild查找位置错误



我正在建立一个新的TeamCity构建代理。在现有代理上运行良好的几个构建配置在新代理上失败了,错误如下(为了清晰起见,添加了空白(:

[22:14:32][someproject.vbproj] 
C:Program Files (x86)Microsoft Visual Studio2017ProfessionalMSBuild15.0binMicrosoft.VisualBasic.CurrentVersion.targets(322, 5): 
error MSB4019: The imported project 
"C:Program Files (x86)Microsoft Visual Studio2017ProfessionalMSBuild15.0binRoslynMicrosoft.VisualBasic.Core.targets" 
was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

请注意"导入的项目"后第三行的路径。错误是正确的;文件夹确实存在,但文件不存在。但是,Microsoft.VisualBasic.Core.targets文件存在于稍微不同的路径

C:Program Files (x86)Microsoft Visual Studio2017BuildToolsMSBuild15.0BinRoslynMicrosoft.VisualBasic.Core.targets

有没有一个简单的解决方案,也许是一个注册表项告诉MSBuild在哪里查找?

原因

  • 在您的机器上,安装了两份VS 2017专业版和原始构建工具
  • 您没有为Professional安装VB位,而为Build Tools安装了VB位
  • TeamCity更喜欢专业版的MSBuild

综合以上所有内容,问题发生了。

修复

您应该强制TeamCity使用Build Tools中的MSBuild,或者将VB添加到VS Pro安装中。

参考

https://blog.lextudio.com/the-rough-history-of-msbuild-cc72a217fa98

最新更新