0

我有一个用于构建 .Net 3.5 应用程序的 TFS 2008 构建代理。我现在有一个 .Net 4.0 应用程序,我想在同一个构建代理上编译它。我已确保在那里安装了 MSBuild 4.0,并且还安装了所有必需的组件,但是MSB4062在构建时出现以下错误:

[任何 CPU/版本] C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets(244,5):错误 MSB4062:“Microsoft.WebApplication.Build.Tasks.GetSilverlightItemsFromProperty”无法从程序集 C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.Build.Tasks.dll 加载任务。无法加载文件或程序集 'file:///C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.Build.Tasks.dll' 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。确认声明正确,并且程序集及其所有依赖项都可用。

我假设我得到了这个,因为 TFSBuild.proj 由 MSBuild 3.5 执行,这反过来意味着我的解决方案是用 MSBuild 3.5 编译的。

我的诊断正确吗?有什么方法可以确保 TFS2008 将 MSBuild 4.0 用于我的解决方案?是否可以在单个团队项目上完成,这样它就不会影响在同一构建代理上构建的任何其他团队项目?

请注意,我已经检查了问题Build failed - VS2010 solution on TFS2008,这不是重复的。

4

1 回答 1

2

是的。

有关此问题的旧文章,请参见此处

你需要有一个专门用于这个项目的构建代理/服务器,并且需要让它重定向到 msbuild 4.0。

  • 将 Team Build 2008 配置为使用 MSBuild 4.0 而不是 MSBuild 3.5。为此,请编辑 %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\TFSBuildService.exe.config 并将 MSBuildPath 属性设置为 C:\Windows\Microsoft.NET\Framework\v4.0.30319。
  • 重新启动 Team Foundation Build 服务。
于 2010-06-01T01:01:50.843 回答