2012-02-07 23 views
7

我已经开始为我们在ASP.NET解决方案中使用svn:externals的一些频繁的依赖项目创建NuGet包。我将.nupkg文件托管在网络文件夹中,并将该文件夹位置用作NuGet源。应该将自行创建的NuGet包放入版本控制中吗?

我不确定在版本控制和放置位置放置什么文件。你是否将.nuspec和.nupkg文件放在你的仓库中? .nu​​spec和.nupkg文件是否都进入了项目的版本控制?我以为.nuspec文件生成.nupkg文件后,您只需要在版本控制中使用该文件。但是,我还认为制作网络文件夹可能是一个好主意,我使用它作为NuGet Feed,本身就是一个回购站。然后我可以版本控制.nupkg文件。

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

回答

5

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

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

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

相关问题