【问题标题】:MSBuild failing due to missing Fakes由于缺少 Fakes,MSBuild 失败
【发布时间】:2017-08-03 20:02:50
【问题描述】:

我们最近升级到 Jenkins 2.60.1,现在我们的 .NET 应用程序的 ci 构建由于缺少 Microsoft Fakes 程序集而失败:

ApiControllerUnitTest.cs(20,30):错误 CS0234:类型或命名空间 名称空间“域”中不存在名称“假货”(您是否缺少 装配参考?) [e:\jenkins\workspace\proj\ci\Web\Web.Test\Web.Test.csproj] ApiControllerUnitTest.cs(31,21):错误 CS0234:命名空间中不存在类型或命名空间名称“QualityTools” 'Microsoft'(您是否缺少程序集参考?)

进一步构建我注意到以下警告:

23>C:\Program 文件 (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): 警告 MSB3245:无法解析此引用。找不到 程序集“Domain.Fakes”。检查以确保程序集存在于 磁盘。如果您的代码需要此参考,您可能会得到 编译错误。 [e:\jenkins\workspace\proj\ci\Web\Domain.Test\Domain.Test.csproj]

我们上次成功的构建在日志中有以下内容:

25>BuildFakesAssemblies: Domain.Fakes -- e:\jenkins\workspace\proj\ci\Web\Domain.Test\FakesAssemblies\Domain.Fakes.dll

升级后我们的最新版本不再执行 MSBuild 中的 BuildFakesAssemblies 任务,这说明为什么缺少程序集是因为它们不是通过此任务创建的。在上次成功构建和当前失败构建之间,此项目没有任何变化。

我确实登录了我们的构建服务器,并注意到我们的 VS Studio 2013 Premium 许可证已过期。我知道您需要 Premium 或 Ultimate 才能利用 Fakes,但我不确定在通过 Jenkins 从命令行执行 MSBuild 的构建服务器上是否需要这样做。有没有人遇到过这个错误或者知道你是否需要在你的构建服务器上安装有效的 VS Studio 来编译 Fakes 程序集?

【问题讨论】:

    标签: .net jenkins visual-studio-2013 msbuild microsoft-fakes


    【解决方案1】:

    我们的管理员刚刚添加了一个临时许可证,现在我们的构建又可以工作了。

    总而言之,您似乎需要在构建服务器上拥有一个具有有效许可证的 VS Studio Premium 2013 或 Ultimate 2013 实例,才能让 MSBuild 构建 Fakes 程序集。

    从命令行运行 MSBuild 时必须安装 VS Studio 似乎很愚蠢,但这是它似乎对我们有用的唯一方法。

    【讨论】:

    • 是的,它至少需要 VS Enterprise。
    猜你喜欢
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2014-02-25
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多