TFS 2017 Build Error Exception calling "Invoke" with "2" argument(s): Microsoft.Build.Shared.FrameworkLocationHelper throw an exception

TFS 2017 Build Error Exception calling "Invoke" with "2" argument(s): Microsoft.Build.Shared.FrameworkLocationHelper threw an exception

它是一个简单的 Hello World Web 应用程序。当我 运行 使用未安装 Visual Studio 的代理时,它工作正常。 但是,如果我 运行 使用安装了 Visual Studio 2017 的另一个代理构建,它就会开始出现此错误。 为了检查,我安装了 VS2017,其中 Build 运行良好,安装 VS2017 后,它开始出现此错误。 找不到问题所在。

错误:

Exception calling "Invoke" with "2" argument(s): "The type initializer for 'Microsoft.Build.Shared.FrameworkLocationHelper' threw an exception."

有什么帮助吗?

如果我卸载 VS 2017 并安装 VS 2013 或 2015,它工作正常。 谢谢 萨米尔

建议您通过 VS2017 进行本地构建测试。

猜猜问题可能是您正在通过旧的 VS 版本创建应用程序。构建服务器未检测到正确的 VS 版本。

对于错误信息 xxx\MSBuildHelpers\vswhere.exe。因为那不是VS路径。从 2017 年开始,MSBuild 位于 Visual Studio 下。在此之前,它位于 %ProgramFiles(x86)%\MSBuild 下的同一位置。在 vswhere 的范围和目的之外,还有其他方法可以找到 2017 年之前的 MSBuild。

如果使用 VS2017 在本地构建成功,建议您重新配置或重新安装 TFS 构建代理。构建代理安装后不会检测环境变化。它只会在安装过程中检测。您也可以尝试在设置-代理队列-代理池-代理-功能中手动添加一些功能。在此之后再次触发构建。