Nuget/程序集版本控制 - 即使没有任何更改,我是否应该增加版本



我有几个项目的解决方案,每个项目都建立在 tfs 服务器上并打包到单独的 nuget 包中。

当我在生成服务器上运行生成时,将创建并发布新版本的 nuget 包。我对所有软件包使用相同的自动递增版本号。

  1. 即使该特定项目中没有任何更改,我是否应该创建包的新版本?

  2. 是否有任何工具或文章可以帮助我仅在实际项目(或其依赖项之一(发生更改时才发布新包?有人这样做吗?

编辑:

在我的解决方案中,我有项目(*格式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 引用。

最新更新