由于缺少假货导致MSBuild失败

时间:2017-08-03 20:02:50

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

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

  

ApiControllerUnitTest.cs(20,30):错误CS0234:类型或命名空间   命名'伪造'在命名空间“域”中不存在(你是否遗漏了   装配参考?)   并[e:\詹金斯\工作空间\凸出\ CI \网络\ Web.Test \ Web.Test.csproj]       ApiControllerUnitTest.cs(31,21):错误CS0234:命名空间中不存在类型或命名空间名称'QualityTools'   'Microsoft'(你错过了程序集引用吗?)

在构建中,我注意到以下警告:

  

23> C:\ Program Files   (86)\的MSBuild \ 12.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1697,5):   警告MSB3245:无法解析此引用。找不到   程序集“Domain.Fakes”。检查以确保组件存在   磁盘。如果您的代码需要此引用,您可能会得到   编译错误。   并[e:\詹金斯\工作空间\凸出\ CI \网络\ 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,但是我不确定在构建服务器上是否需要这样做,其中MSBuild是通过Jenkins在命令行上执行的。有没有人遇到过这个错误,或者知道你的构建服务器上是否需要有效的VS Studio许可安装来编译Fakes程序集?

1 个答案:

答案 0 :(得分:0)

我们的管理员刚刚添加了临时许可证,现在我们的构建工作再次开始。

总之,看起来您需要在构建服务器上安装具有有效许可证的VS Studio Premium 2013或Ultimate 2013实例,以便让MSBuild构建Fakes程序集。

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