【问题标题】:Error CS0234 when building solution using TFS 2017 BuildAgent使用 TFS 2017 BuildAgent 构建解决方案时出现错误 CS0234
【发布时间】:2017-07-19 14:12:17
【问题描述】:

我在尝试使用 TFS 构建定义进行构建时遇到了以下问题。

执行构建时,代理会记录以下错误:

错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)

错误 CS0246:找不到类型或命名空间名称“TestInitializeAttribute”(您是否缺少 using 指令或程序集引用?)

错误 CS0246:找不到类型或命名空间名称“TestCleanupAttribute”(您是否缺少 using 指令或程序集引用?)

错误 CS0246:找不到类型或命名空间名称“TestCleanup”(您是否缺少 using 指令或程序集引用?)

错误 CS0246:找不到类型或命名空间名称“TestMethodAttribute”(您是否缺少 using 指令或程序集引用?)

所以我理解这样的消息,即 buildAgent 无法找到以下 .dll

Microsoft.VisualStudio.TestTools.UnitTesting;

我已经在服务器上安装了 Visual Studio 2017 RC 和 Visual Studio 2017 Build Tools,它们运行 TFS 和 Buildagents。

我还在那个机器上安装了 .net 4.6.1。

这个 accepted answer 不是我的解决方案。

必须有某种解决方案,不包括将该 dll 复制到 git trunk 并从那里引用它。

更新

我能够在该机器上使用 Visual Studio 2017 RC 在本地构建解决方案。 但是构建代理仍然会抛出同样的错误。

【问题讨论】:

标签: c# .net visual-studio tfs msbuild


【解决方案1】:

我终于想出了如何解决这个问题。

我添加了以下 nuget 包作为对我的项目的引用:

https://www.nuget.org/packages/MSTest.TestFramework/

那就是 mstestv2 框架。

之后我不得不删除对 mstestv1 框架的旧引用。

构建错误现在消失了。

更新:

如果您想让您的测试被发现,请将 MSTest TestAdapter 添加到您的项目中。

感谢Maciej 提供该信息。

【讨论】:

  • 如果您希望您的测试可以在 Visual Studio 中被发现/运行,您还需要添加 MSTest.TestAdapter 版本 1.2.0:Install-Package MSTest.TestAdapter -Version 1.2.0跨度>
  • 我对自定义 dll 有类似的问题。然后我删除了对 dll 的旧引用,粘贴了对同一个 dll 的新引用,它就可以工作了!
【解决方案2】:

我在VS 2017中把目标框架从4.7改成了4.6.1,修复了

【讨论】:

    【解决方案3】:

    确保您没有签入包含 NuGet 包和 DLL 的 /packages 目录。我不小心将此目录检查到源代码管理中,它阻止了 NuGet 还原任务正确下载所需的 DLL

    关键消息是构建日志中较早的警告:

    警告 MSB3245:无法解析此引用。找不到 程序集“Microsoft.VisualStudio.TestPlatform.TestFramework, 版本=14.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a, 处理器架构=MSIL”。检查以确保程序集存在于 磁盘。如果您的代码需要此参考,您可能会得到 编译错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2017-11-18
      • 2019-11-26
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多