团队城市未满足要求:MSBuildTools12.0_x86_Path存在

时间:2013-11-15 19:17:43

标签: .net visual-studio-2010 visual-studio-2012 msbuild

我在x32 Server2008 windows机器上安装了TeamCity。我运行了.net 4.5网络安装。我也根据本文复制了我的x64机器上的文件,这样我就不需要安装vs2012(不过,我确实更改了在32位机器上删除x86的路径):

MSBuild in TeamCity of Visual Studio 2012 solution

我似乎无法让本地代理运行我在vs2012或vs2010项目上为msbuild设置的构建。我一直在说:

未满足的要求:MSBuildTools12.0_x86_Path存在

我多次重启服务器,并重启了代理。我已经尝试了一点路径变量,但无法弄清楚我错过了什么。我在配置参数中看起来也很好,可以看到:

MSBuildTools2.0_x86_Path  C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuildTools3.5_x86_Path  C:\ Windows \ Microsoft.NET \ Framework \ v3.5

MSBuildTools4.0_x86_Path  C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319

我如何获得12.0?

11 个答案:

答案 0 :(得分:147)

我需要单独安装MSBuild,然后在重新启动代理后,变量就在那里。

(来自MSDN文章) MSBuild现在作为Visual Studio的一部分安装,而不是作为.NET Framework的一部分安装。当前的MSBuild版本号为12.0。如果要单独安装MSBuild,请从MSBuild Download下载安装包。

编辑:答案链接被破坏了。以下是Microsoft Build Tools 2015的链接(最近一次到今天): https://www.microsoft.com/en-us/download/details.aspx?id=48159

答案 1 :(得分:32)

有点迟到的答案,但是如果您的项目来自VS 2012,并且您正在使用自动检测的解决方案文件构建步骤,则编辑该步骤并从“Visual Studio”下拉选择“Microsoft Visual Studio 2012”修复此问题(并且,恕我直言,更正确)。

答案 2 :(得分:17)

我遇到了同样的问题,最后发现我运行MSBuild的已定义构建步骤配置错误。

在我的MSBuild构建步骤中,设置“MSBuild ToolsVersion”设置为12.0(默认值),这导致我的系统上出现“未满足要求:MSBuildTools12.0_x86_Path存在”错误。因为我不需要新的MSBuild 12.0来运行我的构建,所以我在构建步骤中将此设置更改为4.0。此MSBuild版本已正确安装在我的系统上。这解决了我的问题。

答案 3 :(得分:10)

我也有点迟到了,但我想我会分享以下内容以防止任何可怜的灵魂出现在那里。

  • 我在新的 Windows Server 2012 R2 框中全新安装 TeamCity 8.1.4 时遇到上述错误
  • 按照此主题中的说明操作,尽管进行了大量重新启动和重新安装,但仍然出现错误。
  • 我注意到代理商信息(例如操作系统和CPU)没有出现在代理商详情页面上。这表明问题不在于.NET和MSBUILD先决条件,而是与代理服务无法读取有关机器的信息有关。
  • 代理程序在用户帐户下运行(根据TeamCity documentation具有所有必要的权限)。但是我想如果我进入管理工具>我会看到会发生什么。服务并更改了“登录到本地系统”帐户。
  • 重新启动代理服务。
  • 非常成功。

答案 4 :(得分:8)

MSBuild现在是Visual Studio的一部分。如果您需要在代理上安装构建工具但不想安装VS,则需要安装http://www.microsoft.com/en-us/download/details.aspx?id=40760处提供的新Microsoft构建工具。

答案 5 :(得分:4)

就我而言 - 只有单独安装MSBuild for VS2013才有帮助。 (这里是链接 - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760)它创建了这个文件夹C:\Program Files (x86)\MSBuild\12.0安装VS2015的MSBuild工具创建了C:\Program Files (x86)\MSBuild\14.0这个文件夹,TC不想使用它。

答案 6 :(得分:2)

我在辅助构建代理上遇到此问题。

我已将MSBuild文件夹从主构建代理程序pc复制到辅助构建代理程序pc(就像我在这里描述的一些Visual Studio文件所做的那样:MSBuild in TeamCity of Visual Studio 2012 solution),而不是安装MSBuild。

然而,似乎TeamCity代理服务在启动时检查注册表中的MSBuild条目(它似乎与我上面提到的Visual Studio文件不一样)。由于我只是从其他PC复制了文件,因此没有适用于v.12.0的MSBuild条目,因此TeamCity没有发现MSBuild文件,即使它们存在于Program Files(x86)\ MSBuild文件夹中。

当我从http://www.microsoft.com/en-us/download/details.aspx?id=40760上方的链接安装Microsoft Build Tools时,TeamCity在注册表中找到了v.12.0条目,并且代理能够构建与主代理相同的项目。

请记住在安装MS Build Tools后重新启动TeamCity代理服务。

答案 7 :(得分:1)

就我而言,我在Windows 2016 Server上拥有TeamCity Professional 2018.1。 我从以下位置下载了 Visual Studio 2017的构建工具https://visualstudio.microsoft.com/downloads/,并选择了构建工具的所有选项。安装后,我将MSBuild添加到全局PATH环境变量中。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin。

答案 8 :(得分:0)

就我而言,这是一台没有安装visual studio的新机器,我刚从另一台机器上恢复了Teamcity。所以我安装了visual studio 2013并解决了teamcity代理问题。

答案 9 :(得分:0)

如上所述,自动检测到的构建步骤可能是错误的Visual Studio版本。使用 Build Configuration 设置页上的 Build Steps 部分下的 Visual Studio 下拉菜单进行更改:

enter image description here

答案 10 :(得分:-1)

我似乎通过进入注册表并删除不适用于版本12的MSBuild的所有条目来解决此问题,然后重新启动代理。

为此,请转到开始>运行并输入Regedit

然后导航到密钥:

HKEY_LOCAL_MACHINE>软件>微软> MSBuild

删除除12.0以外的所有版本。

进入下一级别的ToolsVersions并删除那里的非12.0版本。