1

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

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

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

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

编辑:

在我的解决方案中,我有项目( *格式project(references) -> Package Name):

  • A -> 包裹A
  • B(A) -> 包 B(包 A)
  • C -> 包C
  • 集成测试(A、B、C)

和共享 version.txt。

当我在构建服务器上更改项目 C 构建时,所有包都在构建服务器上用 version.txt 重新打包并发布。

然后我有不同的解决方案,消耗这些包。

4

1 回答 1

0

由于您不能考虑在想要打包其中一个项目时打包其他项目:

您是否可以考虑每次您要创建特定项目的 nuget 时,其他项目也将准备好打包?或者,可能会在其他项目上进行正在进行的开发。– Paulo Suassuna 55 分钟前

不,我不能考虑。– Liero 18 分钟前

每次要打包解决方案的项目时,不应创建所有项目的新版本。相反,您应该始终创建您想要打包的唯一一个。另外,我猜您正在解决方案的项目之间使用项目引用。在这种情况下,您也不应该这样做,因为您将引用项目的不稳定版本。例子:

您想使用全新的签入来 nuget pack 项目 B:

  • 您签入 B 中的更改
  • 一些糟糕的签到进入 A
  • 您在构建服务器上构建解决方案
  • build 为 A 打包了一个坏 nuget
  • 您的 B NuGet 包将引用错误的 A NuGet 包。

实际上,您应该将它们视为不同的产品,因此您应该更改它们以供 nuget 参考。这样,您就可以保证您使用的是其他项目的稳定版本。例子

您想使用全新的签入来 nuget pack 项目 B:

  • 您签入 B 中的更改(B 引用 A 的稳定 1.0 nuget 包)
  • 一些糟糕的签到进入 A
  • 您在构建服务器上构建解决方案
  • 构建使用 A.1.0.nupkg 依赖项打包新 B(最新的 A 是否签入错误并不重要)
  • 最后你有一个很好的 B NuGet 包。

您可以将所有项目保留在一个解决方案下,但请务必将它们之间的引用更改为 NuGet 引用。

于 2015-12-10T17:01:49.487 回答