自创的NuGet包应该放在版本控制中吗?

时间:2012-02-07 18:17:10

标签: version-control nuget

我已经开始为我们在ASP.NET解决方案中使用svn:externals的一些频繁的依赖项目创建NuGet包。我将.nupkg文件托管在网络文件夹中,并将该文件夹位置用作NuGet供稿。

我不确定在版本控制中放置哪些文件以及放在哪里。你把.nuspec和.nupkg文件放在你的存储库中了吗?同时将.nuspec和.nupkg文件放入项目的版本控制中吗?我想因为.nuspec文件生成.nupkg文件,所以你只需要在版本控制中使用该文件。但是,我也认为制作网络文件夹可能是一个好主意,我将其用作NuGet提要,本身就是一个回购。然后我可以控制.nupkg文件的版本。

版本控制创建的NuGet包有哪些好的做法?

1 个答案:

答案 0 :(得分:5)

我和你在同一个地方。为了保持您不提交任何可以构建的文件的想法,我的.nuspec文件将进入版本控制,但.nupkg文件不会。

由于版本号已合并到.nupkg文件名中,因此您可以同时在存储库中拥有该软件包的不同版本。您需要在.nuspec文件中使用<version>$version$</version>表单,并将程序集版本设置为自动递增,或者每次只需手动更改版本号。然后,您可以在该版本号上创建Subversion标记,以便在需要时可以返回特定包版本的源代码。

为了让客户端项目自动在我们的软件包中加入小错误修复,我们将在客户端项目中启用NuGet Package Restore,并发布包含简短固定版本号的软件包,如“1.2”。当包有一个简单的错误修复时,我们将使用相同的版本号重新发布。这将覆盖存储库中的先前版本;然后,客户端项目在构建步骤中恢复包时将获得更新。