msbuild – TeamCity – Microsoft.Bcl.Build依赖项

我刚刚对我的存储库进行了一些代码更改,并且突然(经过好几周之后). TC构建开始失败,因为它无法下载Microsoft.Bcl.Build.1.0.6的NuGet包.

我最终不得不手动将packages目录的内容复制到TC构建位置,这完全违背了NuGet的要点.

我可以检查什么来找到这个的根本原因?

获取包的解决方案中启用了关于NuGet的所有内容.

解决方法

我在 http://sedodream.com/2012/12/24/SlowCheetahBuildServerSupportUpdated.aspx上发表了关于这个问题的博客.总结一下NuGet包恢复(在2.7之前)是作为MSBuild构建过程的一部分实现的.当MSBuild启动构建时,它将评估项目文件和导入其他文件的任何Import声明.这在任何目标执行之前发生.

由于NuGet pkg恢复是构建过程的一部分,因此.targets文件会在某个时间点恢复,导致Import语句产生任何影响为时已晚.

您可以通过按照声明检查.targets文件或在构建过程之前调用pkg restore来解决此问题.我已经创建了一个NuGet包,PackageRestore,它可以帮助后一种方法.

要使用PackageRestore,只需将NuGet包添加到项目中,该项目将自动在项目目录中创建名为packageRestore.proj的文件.配置构建时,需要在.sln / .csproj文件之前构建该项.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...