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


117

我在x32 Server2008 Windows计算机上安装了TeamCity。我已经运行过.net 4.5 Web安装。我还根据这篇文章从x64机器上复制了文件,因此我不需要安装vs2012(尽管我确实更改了删除32位机器上的x86的路径):

Visual Studio 2012解决方案的TeamCity中的MSBuild

我似乎无法让本地代理在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?


您还在TeamCity上遇到问题吗?
Daniel Hollinrake

我花了很多时间才能解决这个问题,这使我不得不暂停该项目。我希望在春天回到它。
archangel76 2014年

我花了一些时间才能使它一切正常。我认为其要旨是安装MSBuild和更新Web Deploy。
Daniel Hollinrake 2014年

Answers:


149

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

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

编辑:答案链接已损坏。这是Microsoft Build Tools 2015(最新到今天)的链接:https : //www.microsoft.com/zh-cn/download/details.aspx?id=48159


8
应该注意的是,您将需要.NET Framework 4.5.1版(位于此处:microsoft.com/en-ca/download/details.aspx? id=40779)来安装MSBuild12.0。
布兰登

37
重新启动代理:1.转到构建服务器。2.从开始菜单中运行services.msc。3.找到TeamCity代理,停止该服务,然后重新启动它。对于经验丰富的TeamCity兽医来说,这似乎很明显,但对像我这样的初次使用者而言,似乎并不明显。:)
Chaim Eliyah's

5
尽管我已经安装了MS Build Tools 2013,但仍未设置MSBuildTools12.0_x86_Path变量,并且该代理无法运行。有没有办法手动设置?
bdaniel7 2015年

不得不转到此目录,并运行vcvars64.bat:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64然后msbuild为我工作。
user8128167 2013年

5
默认情况下,当我使用sln文件自动检测并且我的解决方案设置为Visual Studio 2013时。我已更改为在代理上安装的Visual Studio 2015。
ptittof57

33

答案有点晚,但是如果您的项目来自VS 2012,并且您正在使用自动检测到的解决方案文件构建步骤,请对该步骤进行编辑并从“ Visual Studio”下拉列表中选择“ Microsoft Visual Studio 2012”即可解决此问题以及(恕我直言,更正确)。


2
一点也不迟!我今天遇到了这个问题,将VS版本更改为VS 2015摆脱了未满足的需求信息
Sudhanshu Mishra

这为我工作了新鲜的服务器TeamCity 10 VS2015(是旧的2013年项目)
Rippo

2
是的,我的问题是,从“通过URL创建项目”选项中选择自动检测构建步骤时,Team City会“错误选择” Visual Studio版本,因此我只是转到构建步骤并更改了Visual Studio版本可解决此问题。我希望人们在尝试安装jmw答案中可能不需要的东西之前,先检查您的答案。
starmandeluxe

18

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

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


10

我参加聚会也有点晚了,但我想分享一下以下内容,以防它对任何可怜的人有帮助。

  • 在新的Windows Server 2012 R2盒子上全新安装TeamCity 8.1.4时,出现上述错误
  • 按照此线程中的说明进行操作,尽管多次重新启动和重新安装,该错误仍然出现。
  • 我注意到代理信息(例如OS和CPU)没有出现在代理详细信息页面上。这表明问题不在于.NET和MSBUILD先决条件,而是与代理服务无法读取有关计算机的信息有关。
  • 该代理以用户帐户运行(具有根据TeamCity文档提供的所有必要权限)。但是我想如果我进入“管理工具”>“服务”并更改“登录到本地”系统帐户,将会发生什么情况。
  • 重新启动代理服务。
  • 巨大的成功。

更改代理以作为本地服务运行也为我解决了这个问题。我不明白为什么。我将我正在使用的用户添加到本地管理员组,以查看是否存在权限问题,但这没有帮助;
user381624



2

我的二级构建代理存在此问题。

我已将MSBuild文件夹从主构建代理程序PC复制到辅助构建代理程序PC(就像我对某些Visual Studio文件所做的操作,如下所述:Visual Studio 2012解决方案的TeamCity中的MSBuild),而不是安装MSBuild。

但是,似乎TeamCity代理服务在启动时会在注册表中检查MSBuild条目(似乎我上面提到的Visual Studio文件没有这样做)。由于我只是从另一台PC复制文件,因此不存在适用于v。12.0的MSBuild条目,因此TeamCity并未发现MSBuild文件,即使它们存在于Program Files(x86)\ MSBuild文件夹中也是如此。

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

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


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


0

就我而言,这是一台未安装Visual Studio的新机器,而我只是从另一台机器恢复了Teamcity。所以我已经安装了Visual Studio 2013并解决了Teamcity Agent问题。


0

如上所述,自动检测到的生成步骤可能是错误的Visual Studio版本。使用“ 构建配置设置”页面上“ 构建步骤”部分下的Visual Studio下拉列表更改它:

在此处输入图片说明


-1

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

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

然后导航到键:

HKEY_LOCAL_MACHINE>软件>微软> MSBuild

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

在下一层转到ToolsVersions并在那里删除非12.0版本。


1
这是一个坏主意,您在CI / CD中要做的最后一件事是与注册表进行
交互
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.