【问题标题】:TeamCity - Unmet requirements (DotNetFramework4.0_x86)TeamCity - 未满足的要求 (DotNetFramework4.0_x86)
【发布时间】:2016-12-06 07:32:05
【问题描述】:

我最近将我的 TeamCity 更新到了最新版本。 (10.0 build 42002)

从那时起,构建代理无法构建我的任何项目。

代理告诉我以下内容:

Unmet requirements: DotNetFramework4.0_x86 exists 

为了解决这个问题,我已经做了这个 stackoverflow 问题中的建议: TeamCity Agent Missing DotNetFramework4.0_x86, but not?

很遗憾,它不起作用。所以我查看了日志文件,但没有发现任何奇怪的东西。 然后我查看了代理配置参数。我发现了这个:

DotNetFramework4.6.01055_x64_Path    C:\Windows\Microsoft.NET\Framework64\v4.0.30319
DotNetFramework4.6.01055_x86_Path    C:\Windows\Microsoft.NET\Framework\v4.0.30319
DotNetFramework4.6_x64               4.6.01055
DotNetFramework4.6_x64_Path          C:\Windows\Microsoft.NET\Framework64\v4.0.30319
DotNetFramework4.6_x86               4.6.01055
DotNetFramework4.6_x86_Path          C:\Windows\Microsoft.NET\Framework\v4.0.30319

如您所见,.NET 4.0 Framework 映射到 DotNetFramework4.6。对我来说,这似乎是个问题。

有人知道我可以做些什么来解决这个问题吗?

【问题讨论】:

  • 以防万一这对任何人都有帮助,我刚刚遇到了这个问题,并且能够通过简单地重新启动 teamcity 构建代理 windows 服务来解决它????。

标签: .net teamcity


【解决方案1】:

我使用 Greg B 找到的 here 的解决方法来解决问题。

要让代理重新运行,您需要在代理的配置中插入以下行。 (例如位于此处:C:\TeamCity\buildAgent\conf\buildAgent.properties)

DotNetFramework4.0_x86_Path=C\:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319
DotNetFramework4.0_x86=4.0.30319
DotNetFramework4.0_x64_Path=C\:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319
DotNetFramework4.0_x64=4.0.30319
  1. 我在 Windows 服务中停止了代理
  2. 我将参数粘贴在 buildAgent.properties 中
  3. 我在 windows 服务中启动了代理

据我了解,JetBrains 修复了 TeamCity 中的一个错误,因此将无法再找到 .NET Framework。

引用叶夫根尼·科什金的话

...如果您的工具将 .net 4.0 作为其所需的运行时,您 实际上应该避免在您的构建代理上安装 .net 4.5(6)。在 在这种情况下,TeamCity 将报告 .net 4.0 运行时可用。但 我认为安装的 .net 版本的这种限制没有意义 大多数情况。在修复此错误之前,TeamCity 报告了事实 '.net 4.0 以前是此代理上的运行时',因为 '.net 4.0 是 在此代理上运行时'。在我看来,这是一种错误的行为。

【讨论】:

  • 2 天来解决这个问题。谢谢你。 :)
【解决方案2】:

好的,看起来这是 xUnit 测试运行插件的错误。在 TC 问题跟踪器上讨论过:https://youtrack.jetbrains.com/issue/TW-46352

插件作者已经修复了,需要升级到v 1.1.2:https://github.com/carlpett/xUnit-TeamCity/releases/tag/1.1.2

您可以通过安装 .zip 文件来升级:https://confluence.jetbrains.com/display/TCD10/Installing+Additional+Plugins

【讨论】:

  • 感谢您的回答,但我没有安装插件“xUnit”。所以这不可能是问题,还是我错了?
  • 检查您的构建步骤并禁用它们,直到代理要求消失。这是添加需求的步骤,它可能是不同的单元测试运行器(或另一个插件)。
【解决方案3】:

.NETFramework 4.0 和 4.6 使用的是同一个目录

DotNetFramework4.0_x64   4.0.30319
DotNetFramework4.0_x64_Path  C:\Windows\Microsoft.NET\Framework64\v4.0.30319
DotNetFramework4.0_x86   4.0.30319
DotNetFramework4.0_x86_Path  C:\Windows\Microsoft.NET\Framework\v4.0.30319

DotNetFramework4.6_x64   4.6.01055
DotNetFramework4.6_x64_Path  C:\Windows\Microsoft.NET\Framework64\v4.0.30319
DotNetFramework4.6_x86   4.6.01055
DotNetFramework4.6_x86_Path  C:\Windows\Microsoft.NET\Framework\v4.0.30319

有两种可能的解决方案:

【讨论】:

  • 我安装了 .NET Framework 4.0 和 .NET Framework 4.6。 “修复代理要求”是指进入项目设置/代理要求?我在另一个 stackoverflow 答案中看到了这个解决方案,但我无法更改那里的要求。只能选择添加新要求。
  • 我刚刚升级到 v10 并且遇到了这个问题。我没有安装 DotNet 4.0,但我的项目使用 4.5 构建并且在 v9.x 上构建良好。似乎 dotnet4.0 要求是由 MSBuild 构建步骤自动添加的(我没有选择 4.0),我不知道如何删除它。
  • 实际上看起来 xUnit 测试运行器正在添加要求,即使我选择了 4.5。
  • 好的,这是一个错误,已经修复,我会发布答案。
猜你喜欢
  • 2018-09-07
  • 2017-11-18
  • 2012-10-30
  • 2013-03-12
  • 1970-01-01
  • 2018-01-03
  • 2019-04-22
  • 2013-11-29
  • 2018-10-26
相关资源
最近更新 更多