【发布时间】: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