【问题标题】:Team Build - The type or namespace name 'A' does not exist in the namespace 'B'Team Build - 命名空间“B”中不存在类型或命名空间名称“A”
【发布时间】:2014-08-11 14:41:03
【问题描述】:

我会尽量做到这一点。我有一个 VS 2013 解决方案,其中有几个项目都针对 .NET 4.5 框架。当我针对具有 VS 2012 和 .NET 4.5 Framework 的构建代理运行构建时,我遇到了几个与 Project.UnitTests 项目相关的错误,如下所示:

为默认目标构建 Project.UnitTests.csproj...

错误 CS0234:命名空间“Project”中不存在类型或命名空间名称“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

在 Agent 1 上构建成功,但在 Agent 2 上失败。整个过程中唯一失败的项目是 Project.UnitTests。真的不知道该去哪里。尽量保持这个简短,但如果细节太短,我可以提供任何需要的额外信息。

编辑 1: 所有项目都设置为使用“Release | Any CPU”配置进行构建。如果我将它们全部更改为“调试 | 任何 CPU”,构建将在代理 1 和 2 上成功。

【问题讨论】:

  • 你有没有登录失败的机器并在vs中构建它?
  • 如果你使用VS构建你可能会遇到你的版本没有单元测试能力的问题。或许?还是您使用 msbuild 构建?

标签: .net visual-studio tfs tfsbuild


【解决方案1】:

RDP 进入构建服务器(如果可能,作为构建服务帐户)。启动 VS 2012,从构建工作目录打开解决方案,然后尝试构建它。具体查看引用对话框,看看旁边是否有感叹号并进行诊断。

如果这不是一个选项,请打开诊断日志记录(在构建队列时的选项中),然后检查 MSBuild 日志并查看它是否无法找到任何引用(我怀疑是这样)。

【讨论】:

  • 我以构建服务帐户登录并构建解决方案没有任何问题。任何参考程序集都没有感叹号。
  • 所以我只想提供有关此的最终更新。在我原来的帖子的编辑 1 中提到了我能够让它工作的唯一方法。这不是一个很好的答案,但它现在有效。
猜你喜欢
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2022-01-11
  • 2021-10-15
相关资源
最近更新 更多