NuGet本地存储库和包恢复

时间:2015-12-08 11:05:06

标签: nuget nuget-package nuget-package-restore

在我们的团队中,我们正在尝试使用多个包项目和NuGet团队存储库服务器构建工作流。但是为了避免在每次更改时部署包,每个开发人员都在其计算机上拥有自己的本地存储场景是:

开发人员在包和依赖项目上工作。他没有发布新版本的软件包,也没有在稳定版本发布之前将其部署到NuGet团队存储库(所以版本在发布之前不会更改)。

Project_A生成Project_A.nupkg并在post build事件(例如版本1.0.0.0)上将其部署在本地存储库中。

由于NuGet包恢复内置功能,Project_B依赖于Project_A.nupkg并从本地存储库中提取它。

问题是,当开发人员更改Project_A中的某些内容并将其重新推送到本地存储库时,Project_B没有获得此更新,因为已存在的packages文件夹中包的版本相同。

我试过了:

  • 在预先构建的事件上删除packages文件夹的方法,但是在包恢复msbuild任务之后它被删除,因此构建失败。
  • 将“预发布”部分添加到版本(http://docs.nuget.org/docs/reference/versioning),但如果版本没有更改,则不会从存储库更新包。

  • 从包管理器控制台手动调用Update-Package -Reinstall -IncludePrerelease,但它提供Package 'Project_A.1.0.0-alpha' already exists in folder '...\packages'

除了在每个构建中更改Project_A的AssemblyInfo.cs中的版本之外,此问题的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:0)

在BeforeClean事件上清除包文件夹,如果要使用较新版本的Project_A,请始终重建项目。