从TFS2008构建VS2010解决方案

时间:2010-06-01 00:51:32

标签: tfs2008 msbuild-4.0

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

  

[任何CPU / Release] 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 failing - VS2010 solution on TFS2008,这不是重复的。

1 个答案:

答案 0 :(得分:2)

有关此内容的旧文章,请参阅here

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

  
      
  • 配置Team Build 2008以供使用   MSBuild 4.0而不是MSBuild 3.5。至   这样编辑%ProgramFiles%\ Microsoft   视觉工作室   9.0 \ Common7 \ IDE \ PrivateAssemblies \ TFSBuildService.exe.config   并将MSBuildPath属性设置为   C:\的Windows \ Microsoft.NET \框架\ v4.0.30319
  •   
  • 重新启动Team Foundation Build服务。
  •