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

标签 msbuild teamcity nuget

我刚刚突然向我的存储库提交了一些代码更改(在几周的良好状态之后)。 TC 构建开始失败,因为无法下载 Microsoft.Bcl.Build.1.0.6 的 NuGet 包。

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

我可以检查什么来找出问题的根本原因?

有关 NuGet 的所有功能都在用于获取包的解决方案中启用。

最佳答案

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

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

您可以通过按照您的说明 checkin .targets 文件或在构建过程之前调用 pkg Restore 来解决此问题。我创建了一个 NuGet 包 PackageRestore ,这有助于后一种方法。

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

关于msbuild - TeamCity - Microsoft.Bcl.Build 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654569/

相关文章:

msbuild - 记录运行 msbuild 构建时每个任务所用的时间

visual-studio - 如何在 MSBuild/TFS 中缩进构建步骤

visual-studio - TeamCity CI无法找到NuGet

c# - NuGet 找不到现有包

visual-studio-2012 - MvvMCross 3.0.6 Nuget软件包安装问题

ssl - Asp.net 核心的 docker 容器上的 Nuget CA 证书错误

f# - 如何插入代码质量指标 - FAKE F#MAKE

.net - Visual Studio 2005 和 .Net 框架 1.1

git - 具有Git命令错误处理的Powershell-在外部程序的非零退出代码时自动中止

bitbucket - 如何使 Bitbucket POST webhook 连接到 TeamCity?