我有几个项目的解决方案,每个项目都建立在 tfs 服务器上并打包到单独的 nuget 包中。
当我在生成服务器上运行生成时,将创建并发布新版本的 nuget 包。我对所有软件包使用相同的自动递增版本号。
-
即使该特定项目中没有任何更改,我是否应该创建包的新版本?
-
是否有任何工具或文章可以帮助我仅在实际项目(或其依赖项之一(发生更改时才发布新包?有人这样做吗?
编辑:
在我的解决方案中,我有项目(*格式project(references) -> Package Name
(:
- A
- ->包A
- B(A( -> 包装B (包装 A( C
- -> 包装C
- 集成测试 (A, B, C(
和共享版本.txt。
当我在构建服务器上更改项目 C build 时,所有包都使用版本重新打包.txt在构建服务器上并发布。
然后我有不同的解决方案,消耗这些包。
由于您无法考虑在想要打包其中一个项目时打包其他项目:
你能考虑到每次你想创建一个特定项目的nuget时,其他项目也会准备好打包吗?或者,也许会承诺在其他项目上进行开发。– 保罗·苏苏纳 55分钟前
不,我不能考虑。 – 列罗 18分钟前
不应在每次要打包解决方案的项目时创建所有项目的新版本。相反,您应该始终创建您想要打包的唯一内容。另外,我猜您在解决方案的项目之间使用项目引用。在这种情况下,您也不应该这样做,因为您将引用项目的不稳定版本。例:
您想使用全新的签入来打包项目 B:
- 您在 B 中签入更改
- 一些糟糕的签到进入A
- 在生成服务器上生成解决方案
- 构建包一个坏的 Nuget 对于 A B NuGet 包
- 将引用有错误的 A NuGet 包。
将它们视为不同的产品,因此您应该更改它们以供 nuget 参考。这样,您可以保证您使用其他项目的稳定版本。例
您想使用全新的签入来打包项目 B:
- 您签入 B 中的更改(B 引用 A 的稳定 1.0 nuget 包(
- 一些糟糕的签到进入A
- 在生成服务器上生成解决方案
- 构建将新的 B 与 A.1.0.nupkg 依赖项打包(最新的 A 是否有错误的签入并不重要(
- 最后你有一个很好的B NuGet包。
可以将所有项目保留在单个解决方案下,但请务必将它们之间的引用更改为 NuGet 引用。