从TFS2008构建VS2010解决方案

问题描述:

我有一个TFS 2008构建代理,用于构建.Net 3.5应用程序。我现在有一个.NET 4.0应用程序,我想在同一个构建代理上编译。我已经确保的MSBuild 4.0安装在那里,所有必需的组件部分也安装了,但我得到以下MSB4062错误时建筑:从TFS2008构建VS2010解决方案

[任何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 \微软\ VisualStudio的\ V10.0 \ web应用\ 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 failing - VS2010 solution on TFS2008,这不是重复的。

是的。

查看here对于这篇文章的旧文章。

您需要有一个专用于此项目的构建代理/服务器,并且需要将其重定向到msbuild 4.0。

  • 配置团队生成2008使用 的MSBuild 4.0,而不是3.5的MSBuild。要 为此,编辑的%ProgramFiles%\微软 的Visual Studio 9.0 \ Common7 \ IDE \ PrivateAssemblies \ TFSBuildService.exe.config 和MSBuildPath属性设置为 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319。
  • 重新启动Team Foundation Build服务。
+0

干杯Preet,博客帖子从来没有出现在我的结果。幸运的是,构建代理是一个虚拟机,所以我可以克隆它。 – slugster 2010-06-01 02:35:33