我正在建立一个新的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