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

时间:2019-10-31 13:54:01

标签: msbuild teamcity visual-studio-2017-build-tools

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

[22:14:32][someproject.vbproj] 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\Microsoft.VisualBasic.CurrentVersion.targets(322, 5): 
error MSB4019: The imported project 
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\Roslyn\Microsoft.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 Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\Microsoft.VisualBasic.Core.targets

是否有简单的解决方法,也许是注册表项告诉MSBuild在哪里查看?

1 个答案:

答案 0 :(得分:1)

原因

  • 在您的计算机上,安装了两个VS 2017副本:专业版和原始Build Tools。
  • 您没有为Professional安装VB位,而为构建工具安装了VB位。
  • TeamCity首选专业版的MSBuild。

将所有内容合并在一起,就发生了问题。

修复

您应该强制TeamCity从构建工具使用MSBuild,或者将VB添加到VS Pro安装中。

参考

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