TeamCity - 未满足的要求 (DotNetFramework4.0_x86)

TeamCity - Unmet requirements (DotNetFramework4.0_x86)

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

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

代理告诉我以下内容:

Unmet requirements: DotNetFramework4.0_x86 exists 

为了解决这个问题,我已经按照这个 Whosebug 问题中的建议做了: 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。对我来说这似乎是问题所在。

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

.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

有两种可能的解决方案:

好的,看起来这是 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

我使用了 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 Frameworks。

引自 Evgeniy Koshkin

...in case your tool targeting .net 4.0 as its required runtime you actually should avoid installing .net 4.5(6) on your build agents. in that case TeamCity will report that .net 4.0 runtime is available. But i don't think this limitation of installed .net version makes sence in most of the cases. Before this bug was fixed TeamCity reports the fact '.net 4.0 was previously a runtime on this agent' as '.net 4.0 is a runtime on this agent'. It's a buggy behaviour in my point of view.