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

MSBuild在错误位置查找Microsoft.VisualBasic.Core.targets,msbuild,teamcity,visual-studio-2017-build-tools,Msbuild,Teamcity,Visual Studio 2017 Build Tools,我正在建立一个新的TeamCity构建代理。在现有代理上运行良好的几个构建配置在新代理上失败,错误如下(为清楚起见添加了空格): 是否有一个简单的解决方案,可能是一个注册表项告诉MSBuild在哪里查找?原因 在您的计算机上,安装了两个VS 2017副本,即专业版和原始构建工具 您没有为Professional安装VB位,而为构建工具安装了VB位 TeamCity更喜欢专业版的MSBuild 综上所述,问题发生了 修理 您应该强制TeamCity从构建工具使用MSBuild,或者将VB添加到

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

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

原因
  • 在您的计算机上,安装了两个VS 2017副本,即专业版和原始构建工具
  • 您没有为Professional安装VB位,而为构建工具安装了VB位
  • TeamCity更喜欢专业版的MSBuild
综上所述,问题发生了

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

参考文献

手动将第二个文件夹的内容复制到第一个文件夹确实使构建工作正常(或者至少,克服该错误;我还有其他错误需要解决)。根据类似这样的帖子,这完全是TeamCity的问题,您没有使用正确的标记,而且还调查了错误的方向。@LexLi you回复了一个链接,链接到一个一年多前的帖子,关于TeamCity的另一个版本。虽然你说答案包含在你链接到的“帖子”中可能包含了我问题的实际答案,但你的实际链接对我来说毫无用处。“错误方向调查”也毫无意义。非常感谢您提供了正确的标签。您仍在使用VS2017,这也不是新的。我使用链接文章向您展示,要找出罪魁祸首,您应该关注TeamCity代理配置,特别是它如何检测MSBuild。在您的计算机上,安装了两个VS 2017副本,即专业版和原始构建工具。您没有为Professional安装VB位,而为构建工具安装了VB位,因此当TeamCity更喜欢Professional时,问题就发生了。要解决此问题,您可以强制TeamCity使用构建工具,或者将VB添加到VS Pro安装中。它们都不是“轻松修复”或注册表黑客。@LexLi虽然我同意VS2017不是新的,但实际上您最新回复中的所有内容都是新的——对本次讨论。在您之前的邮件或链接中都看不到这些信息,我感谢您抽出时间提供这些信息。如果你把这个评论推广到一个答案,那么我将接受它。谢谢!有了这个提示,我可以返回到工作代理,提取它们的安装配置,并使用它修复新代理上的VS Pro安装。我所有在旧代理上工作的构建配置现在都在新代理上工作。
[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.
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\Microsoft.VisualBasic.Core.targets