【发布时间】:2016-03-13 06:37:07
【问题描述】:
在我们的团队中,我们正在尝试使用多个包项目和 NuGet 团队存储库服务器构建工作流。但是为了避免在每次更改时部署包,每个开发人员在他的机器上都有自己的本地存储库。场景是:
开发人员在包和依赖项目上工作。他不会发布新版本的包,也不会在稳定发布之前将其部署到 NuGet 团队存储库(因此版本在发布之前不会更改)。
Project_A 生成 Project_A.nupkg 并在构建后事件(例如版本 1.0.0.0)中将其部署到本地存储库中。
Project_B 依赖于 Project_A.nupkg,并且由于 NuGet 包恢复内置功能而从本地存储库中提取它。
问题是,当开发人员更改 Project_A 中的某些内容并将其重新推送到本地存储库时,Project_B 没有获得此更新,因为 packages 文件夹中已经存在相同版本的包。
我试过了:
- 在预构建事件中删除 packages 文件夹的方法,但在 package-restore 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 中的版本之外,此问题的最佳解决方案是什么?
【问题讨论】:
标签: nuget nuget-package nuget-package-restore