Team city unmet requirement: MSBuildTools12.0_x86_Path exists

I have a TeamCity install on x32 Server2008 windows machine. I've run the .net 4.5 web install. I've also copied over the files from my x64 machine based on this article so that I didn't need to install vs2012 (though, I did have the change the path to remove x86 on the 32bit machine):

MSBuild in TeamCity of Visual Studio 2012 solution

I can't seem to get the local agent to run the build that I've setup for msbuild on a vs2012 or vs2010 project. I keep getting:

Unmet requirements: MSBuildTools12.0_x86_Path exists

I've restarted the server multiple times, and restarted the agent as well. I've tried messing with the path variables a little, but can't figure out what I'm missing. I've looked as well in the Configuration Parameters, and can see these:

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

How do I get 12.0 in there?

45170 次浏览

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

要做到这一点,转到开始 > 运行,并键入注册表

Then navigate to the key:

软件 > 微软 > MSBuild

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

下一级到 ToolsVersions,删除那里的非12.0版本。

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

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

我需要单独安装 MSBuild,然后在重新启动代理之后,变量就出现了。

(摘自 MSDN 文章) MSBuild 现在作为 VisualStudio 的一部分安装,而不是作为。NET 架构。当前的 MSBuild 版本号是12.0。如果要单独安装 MSBuild,请从 MSBuild 下载中下载安装包。

编辑: 答案链接中断。下面是 Microsoft Build Tools 2015的链接(最近一次是今天) : Https://www.microsoft.com/en-us/download/details.aspx?id=48159

MSBuild is now part of Visual Studio. If you need to install the build tools on your agent but don't want to install VS, you will need to install the new Microsoft Build Tools which is available at http://www.microsoft.com/en-us/download/details.aspx?id=40760.

这个回答有点晚,但是如果你的项目来自 VS 2012,并且你正在使用自动检测解决方案文件构建步骤,编辑该步骤并从“ Visual Studio”下拉菜单中选择“ Microsoft Visual Studio 2012”也可以解决这个问题(恕我直言,更正确)。

我也有点晚了,但我想我会分享以下内容,以防它帮助任何可怜的灵魂在那里。

  • 我得到上面提到的错误在一个新的 Windows Server 2012 R2盒子上新安装的 TeamCity 8.1.4
  • 按照这个线程中的说明操作,尽管重新启动和重新安装了很多次,错误仍然出现。
  • 我注意到代理信息,如操作系统和 CPU 没有出现在代理详细信息页面上。这表明问题不在于。NET 和 MSBUILD 的先决条件,但是与代理服务无法读取有关机器的信息有关。
  • 代理在用户帐户下运行(具有 TeamCity 文档所需的所有权限)。但是我想,如果我进入管理工具 > 服务并更改登录到本地系统帐户,会发生什么。
  • 重新启动代理服务。
  • 非常成功。

我的二级建筑代理出了点问题。

我已经将 MSBuild 文件夹从主构建代理 PC 复制到辅助构建代理 PC (就像我对一些 Visual Studio 文件所做的那样,如此处所述: VisualStudio2012解决方案的 TeamCity 中的 MSBuild) ,而不是安装 MSBuild。

但是,似乎 TeamCity 代理服务在启动时会检查注册表中的 MSBuild 条目(对于上面提到的 Visual Studio 文件似乎不会这样做)。由于我只是从另一台电脑复制了文件,没有12.0版本的 MSBuild 条目,所以 TeamCity 没有发现 MSBuild 文件,即使它们出现在 Program Files (x86) MSBuild 文件夹中。

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

请记住在安装 MS 构建工具之后重新启动 TeamCity 代理服务。

在我的案例中,只有单独安装 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 不想使用它。

在我的情况下,这是一个新的机器没有视觉工作室安装和我刚刚恢复团队从另一台机器。所以我已经安装了2013视觉工作室,并解决了团队城市代理的问题。

在我的例子中,我在 Windows 2016服务器上使用了 TeamCity Professional 2018.1。 我从这里下载了 VisualStudio2017版本工具: https://visualstudio.microsoft.com/downloads/,并选择了构建工具的所有选项。安装之后,我将 MSBuild 添加到全局 PATH 环境变量。 C: Program Files (x86) Microsoft Visual Studio 2017 BuildTools MSBuild 15.0 Bin.

如上所述,自动检测生成步骤可能选择了错误的 VisualStudio 版本。在 构建配置设置页面的 构建步骤部分使用 视觉工作室下拉菜单更改:

enter image description here