0

我正在设置一个新的 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 去哪里看?

4

1 回答 1

1

原因

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

综上所述,问题发生了。

使固定

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

参考

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

于 2019-11-14T19:27:34.197 回答