【问题标题】:TFS 2017 doesn't build Fakes targetsTFS 2017 不构建 Fakes 目标
【发布时间】:2017-07-11 13:23:20
【问题描述】:

我有一个安装了 VS 2017 Enterprise 的 TFS 2017 Update 2 本地服务器。我们的 Build 包含一个单元测试项目,其中包含一个 Fakes 程序集并在开发机器上本地工作。 在 TFS 上构建时,构建失败并显示

命名空间中不存在类型或命名空间名称“Fakes” 'Our.Product'(您是否缺少程序集参考?)

(即未生成/未能生成Our.Product.Assembly.Fakes.dll 文件)

我还按照here的建议设置了Fakes。

让我感到困惑的是,构建日志中没有提到 Fakes(除了错误本身和 MSBuild 查找文件的路径),即使是调试冗长。他没有尝试生成 Fakes 程序集。

我还需要采取其他步骤吗?我们使用 vNext 构建定义。

更新: 这是现在有效的构建步骤,在/tv:15.0 /p:VisualStudioVersion=15.0 之前在那里。

【问题讨论】:

  • 您运行的是哪个版本的 XAML 版本或 vNext 版本?
  • Fakes 程序集不会随 VS2017 构建工具安装生成。您可能想在stackoverflow.com/questions/44156571/… 上查看此答案
  • 我们正在运行 vNext。 @zionyx 我知道这个答案,我什至在问题中链接了它。

标签: tfs tfsbuild microsoft-fakes


【解决方案1】:

更新

使用最新版本的 msbuild 参数,例如 /tv:15.0 /p:VisualStudioVersion=15.0 可以解决这个问题。


首先尝试使用构建服务帐户RDP远程构建代理并手动运行构建以查看程序集是否生成。

如果它与构建代理上的环境相关,这将缩小范围。确保它与您的本地开发机器相同。

如果还生成了程序集,则问题可能与您的构建定义设置有关。检查您是否使用了正确的 msbuild 版本。对于 vNext 构建,还可以使用 enable verbose Debug Modesystem.debug=true

【讨论】:

  • 是的,如果我在远程代理上的 VS 中手动构建它,它就会构建。如前所述,除了缺少 DLL 的错误外,详细日志中没有提到 Fakes 生成。
  • @Lennart 你能分享你的 VS build 或 MsBuild 任务的配置,所以我可以用它来测试一下。使用最新版本的 msbuild 参数,例如 /tv:15.0 /p:VisualStudioVersion=15.0。还要使用相同的设置创建一个新的构建定义并尝试再次构建项目。
  • @Lennart,我设法使用命令行本身进行构建。没有特殊的参数来生成假货。这是我的logs
  • @Patrick-MSFT msbuild 参数使它工作,谢谢!如果您将它们添加到您的答案中,我会接受它。我在问题中发布了 MSBuild 任务。我认为它会自动使用 MSBuild 15,因为它在此过程中选择了正确的二进制文件。
  • @Lennart 谢谢,已经完成了。很高兴在这里解决了这个问题。根据您的描述,如果您在远程代理上的 VS 中手动构建它,它也会构建。我猜这个问题可能与您的 tfs 构建定义有关,因此建议您添加 /tv:15.0 /p:VisualStudioVersion=15.0,这将告诉 msbuild force 使用 msbuild15 和 VS 2017。
猜你喜欢
  • 1970-01-01
  • 2018-09-15
  • 2018-11-21
  • 1970-01-01
  • 2018-07-24
  • 2018-05-11
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多