2

我正在尝试让构建在 TFS 中的构建代理上运行。我可以在 Visual Studio 2012 RC 中成功构建解决方案,其他开发人员也可以在他们的解决方案中做同样的事情。我为调试配置创建了构建定义,并在 TFS 服务器中将构建排入队列。我收到以下错误日志。

Error:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1046): The command "IF EXIST ../batch (
    cd ../batch
) ELSE (
    cd ../../Sources/Solution_Name/Project_Name/batch
)
createDepsFile Project_Name
" exited with code 9009.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1561): Could not resolve this reference. Could not locate the assembly "System.Web.Optimization". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1561): Could not resolve this reference. Could not locate the assembly "System.Web.Providers". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
Error  Global.asax.cs (16): The type or namespace name 'Optimization' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

我检查了添加到项目中的参考。我找不到那些程序集。在查看了所有帖子后,我发现了一些很好的建议,例如使用 NuGet 将这些程序集添加到解决方案中,然后在 TFS 中签入解决方案。缺少参考只是“警告”而不是错误。我仍然无法在我正在寻找的 Nuget 中找到所有程序集。一些帖子提到该项目可能指的是 .Net 4.5 而不是安装在构建机器中的 .Net 4.0。在我确切地知道问题所在之前,我不想更改解决方案。我分散在这个问题上。

在这一点上,我认为它与构建定义无关。Code 9009 也无济于事。我可能错了。任何建议都需要帮助。

4

3 回答 3

1

System.Web.Optimization 和 System.Web.Providers 听起来像是一个 ASP MVC 项目。无论如何,请尝试以下方法:

  • 将两个引用的“复制本地”属性设置为 False。
  • 保存更改
  • 将其设置回 True 并触发构建。

对我来说,这有帮助。

于 2012-09-17T19:47:51.163 回答
1

谢谢大家的回复。我发现了问题。一些 .dll 不在正确的路径上。我只是将 .dll 移动到 MSbuild 正在寻找的地方之一。

于 2012-09-19T17:21:49.653 回答
0

听起来您缺少对构建服务器的一些依赖项。我不确定你必须在你的开发者机器上安装什么来获得 System.Web.Optimization 和 System.Web.Providers,但如果它只是 VS 2012,那么你可以尝试在构建代理服务器上安装 VS 2012。

于 2012-09-14T04:10:31.580 回答