我会尽力在这个上尽可能准确。我有一个VS 2013解决方案,其中包含几个针对.NET 4.5 Framework的项目。当我针对具有VS 2012和.NET 4.5 Framework的构建代理运行构建时,我得到了几个相对于Project.UnitTests项目的错误,如下所示:
为默认目标构建Project.UnitTests.csproj ...
错误CS0234:命名空间“项目”中不存在类型或命名空间名称“Business”(您是否缺少程序集引用?)[C:\ Builds \ 37 \ Project \ Project_v2.0.0 \ Sources \ Source \ Project.UnitTests \ Project.UnitTests.csproj]
当我针对运行VS 2010和.NET 4.0 Framework的代理运行相同的构建时,它会成功构建。
以下是我正在使用的解决方案的基本布局:
Project.Business
Project.Business.Services
- Depends on PProject.Business
Project.Console
- Depends on Project.Business
- Depends on Project.Business.Services
Project.UnitTests
- Depends on Project.Business
- Depends on Project.Business.Services
Build Order:
Project.Business
Project.Business.Services
Project.Console
Project.UnitTests
这是我正在使用的构建代理的配置:
Build Agent 1
- Windows 7 32-bit
- TFS 2010 SP1
- VS 2010
- .NET Framework 4.0
Build Agent 2
- Windows 7 64-bit
- TFS 2010 SP1
- VS 2012
- .NET Framework 4.5
构建在代理1上成功,但在代理2上失败。唯一失败的项目是Project.UnitTests。真的不知道这个去哪里。试图保持这个尽可能短,但如果它的细节太短,我可以提供所需的任何其他信息。
编辑1: 所有项目都设置为使用“Release | Any CPU”配置进行构建。如果我将它们全部更改为“Debug | Any CPU”,则构建将在代理1和2上成功。
答案 0 :(得分:1)
RDP进入构建服务器(如果可能,作为构建服务帐户)。启动VS 2012,从构建工作目录打开解决方案,并尝试构建它。具体来看参考文献对话框,看看它们旁边是否有任何感叹词并进行诊断。
如果这不是一个选项,请打开诊断日志记录(在对构建进行排队时的选项中),然后检查MSBuild日志,看看它是否找不到任何引用(我怀疑它)是)。