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

标签 version-control nuget

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

我不确定要在版本控制中放置哪些文件以及放置在何处。你把 .nuspec 和 .nupkg 文件都放在你的存储库中了吗? .nu​​spec 和 .nupkg 文件是否都包含在项目的版本控制中?我认为由于 .nuspec 文件生成了 .nupkg 文件,因此您只需要在版本控制中使用该文件。但是,我也认为制作网络文件夹可能是个好主意,我将其用作 NuGet 提要,本身就是一个存储库。然后我可以对 .nupkg 文件进行版本控制。

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

最佳答案

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

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

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

关于version-control - 自创的 NuGet 包应该放在版本控制中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181589/

相关文章:

git - 重写 git 历史以解压缩压缩的提交

带缓存的 NuGet 服务器

c# - KeyVault - 如何从我的 C# 应用程序获取存储在 keyvault 中的 pfx 文件?

visual-studio - 在 .net 核心应用程序中通过 nuget 安装 jquery ui 后找不到文件

git - https ://xxx. visualstudio.com/DefaultCollection/_git/project 的身份验证失败

svn - 我的文件是否物理存储在 Subversion Repository 文件夹中?

git - 如何在开源项目中 stash 私有(private)信息?

visual-studio-2017 - 现有项目中缺少文件 NuGet.targets

azure-devops - 获取不允许将 NuGet 发布到 VSTS/ADO 的 405 方法

version-control - Microsoft 员工是否使用 Visual Source Safe (VSS)?