3

我正在尝试在团队城市服务器上构建一个 .Net 4.5.1 Web 项目。我已经安装了 windows 8.1 SDK,其中似乎有程序集Microsoft.Build.Tasks.v4.0.dll。但是,当我尝试构建项目时,我仍然收到错误:

C:\TeamCity\buildAgent\work\bdb0a42dd3d7277\.nuget\NuGet.targets(71, 9): error MSB4175: The task factory "CodeTaskFactory" could not be loaded from the assembly "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll". Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Build.Tasks.v4.0.dll' or one of its dependencies. The system cannot find the file specified.

我需要在构建服务器上安装什么或从我的构建环境中复制什么?

更新

这个问题仍然悬而未决,但现在我已经通过编辑项目文件以使用 MSBuild 4.0 而不是 12 解决了这个问题。

4

6 回答 6

3

msbuild通过以下方式使用任务时我遇到了类似的问题rakehttp ://www.beta.microsoft.com/VisualStudio/feedback/details/806393/error-trying-to-build-using-msbuild-from-code

您好,感谢您的反馈。我相信您遇到这个问题是 MSBuild 移出 .NET Framework 的副作用(更多信息:http: //blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild -is-now-part-of-visual-studio.aspx)。

您的项目正在引用仍在 .NET Framework 中的旧版 MSBuild。此版本一直使用到 Visual Studio 2013。由于您正在从 Visual Studio 2013 调试项目,因此 VisualStudioVersion 环境变量自动设置为“12.0”。这导致 2013 代码分析目标与项目一起加载,但这些目标与旧版本的 MSBuild 不兼容,因为 VS 2013 仅使用 MSBuild 12.0。

于 2014-04-16T07:00:21.307 回答
2

您可以通过安装Microsoft Build Tools 2013来解决此问题。安装完成后(并可能重新启动 TeamCity Server),您应该可以在 TeamCity 中的所有“MSBuild”类型步骤Microsoft Build Tools 2013下使用该选项。MSBuild version选择这个,一切都应该很好。

我更喜欢在构建服务器上安装 VS,因为它在服务器上留下的占用空间要小得多。

于 2014-08-11T20:47:03.827 回答
1

我不知道这是谁的错,但无论是 msbuild 还是 team city 都有倒退。

涉及的两个文件是:

C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.Build.Tasks.v12.0.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll

如果团队城市错误消息需要Microsoft.Build.Tasks.v4.0.dllC:\Program Files (x86)\MSBuild\12.0\bin\文件夹中,然后从那里复制它C:\Windows\Microsoft.NET\Framework\v4.0.30319\。或者,如果它想要Microsoft.Build.Tasks.v12.0.dllC:\Windows\Microsoft.NET\Framework\v4.0.30319\文件夹中,然后从C:\Program Files (x86)\MSBuild\12.0\Bin\文件夹中复制它。

对我来说,神奇的组合是:

  • MSBuild 版本:Microsoft .NET Framework 4.5
  • MSBuildTools 版本:4.0

我复制Microsoft.Build.Tasks.v12.0.dllC:\Windows\Microsoft.NET\Framework\v4.0.30319\

于 2014-01-24T07:30:17.907 回答
0

在 TeamCity 的 msbuild 步骤中仔细检查您的工具和目标 .Net 框架,并确保它们设置为 V4.0 和 .Net 框架 4.5。还要确保 .nuget 目录中的 NuGet.exe 版本至少为 2.7.0 版。在我纠正了这两件事之后,这个错误就消失了。

于 2013-11-27T21:47:17.023 回答
0

我不确定问题出在哪里,但我们总是在运行 Team City 代理的计算机上安装 Visual Studio。通常它会解决所有相关的依赖关系,包括 MSBuild、.NET、构建目标等。

对于 .NET 4.5.1,它将是 Visual Studio 2013。

另一个建议 - Team City 仅在 TC 8.1 中添加了对 VS 2013 和相关构建工具的支持 - http://confluence.jetbrains.com/display/TW/Gaya+8.1+EAP1+%28build+29353%29+Release+Notes#Gaya8 .1EAP1%28build29353%29ReleaseNotes-MSVisualStudio2013supportinbuildrunners。可能升级到最新的 TC 可能会有所帮助。

于 2014-02-06T11:48:37.930 回答
-2

在 csproj 文件中将 " 更改为。这一切都需要做。

于 2014-09-09T20:10:15.080 回答