Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在公共NuGet存储库中发布的.Net库中使用自定义版本控制方案是否可以接受?_.net_Visual Studio_Nuget_Versioning_Convention - Fatal编程技术网

在公共NuGet存储库中发布的.Net库中使用自定义版本控制方案是否可以接受?

在公共NuGet存储库中发布的.Net库中使用自定义版本控制方案是否可以接受?,.net,visual-studio,nuget,versioning,convention,.net,Visual Studio,Nuget,Versioning,Convention,我为我的项目找到了一个有点原始的版本编号方案: Major.Year.Month.Build e、 g 这意味着这是第二代的第四个版本(与1…*分支相比意味着严重的突破性变化,它可能是一个完全不同的应用程序,用于相同的任务实际上,我只是不想在2017年3月发布的类似MyApp2的应用程序中重命名它) 我也希望包括月份号,但Visual Studio/.NET Framework或Win32版本数据资源格式似乎不支持由5部分组成的版本号 我从来没有见过类似于经典版本和基于日期的版本控制的详细混合

我为我的项目找到了一个有点原始的版本编号方案:

Major.Year.Month.Build
e、 g

这意味着这是第二代的第四个版本(与1…*分支相比意味着严重的突破性变化,它可能是一个完全不同的应用程序,用于相同的任务实际上,我只是不想在2017年3月发布的类似MyApp2的应用程序中重命名它)

我也希望包括月份号,但Visual Studio/.NET Framework或Win32版本数据资源格式似乎不支持由5部分组成的版本号

我从来没有见过类似于经典版本和基于日期的版本控制的详细混合(年版本有点相似,但不太多),我怀疑这是因为对许多人来说,它可能太不方便、违反直觉、看起来不整洁或类似的东西,问题是情况是否如此,问题是否严重到足以使这种版本控制方式实际上受到某种规则或社区非正式惯例的强烈反对

我可以在我计划发布的库中使用这种版本控制方式吗?或者是否有一个我应该遵守的既定约定?

建议对NuGet软件包进行版本控制

它的概念与您提到的类似,第一个数字是用于重大突破性更改。可以在发布标签或元数据中添加日期等其他信息

在公共NuGet存储库中发布的.Net库中使用自定义版本控制方案是否可以接受

答案是肯定的,但不推荐。NuGet Gallery是所有包作者和消费者使用的中央包存储库的开源网站。我们可以将定制包发布到公共NuGet存储库。为了更方便、更有效地更新管理包,我们需要做的是,开始使用语义版本控制,即声明您正在这样做,然后遵循规则。 正如Justin Emgarten的建议,在:

要使该系统正常工作,首先需要声明一个公共API。这可能包括文档或由代码本身强制执行。无论如何,此API必须清晰、准确。一旦您确定了您的公共API,您就可以通过特定的版本号增量来传达对它的更改。考虑X.Y.Z(Meal.Nuff.Poad)的版本格式。不影响API增量(补丁版本)、向后兼容的API添加/更改增量(次要版本)和向后不兼容的API更改增量(主要版本)的错误修复


有了这些规则,我们可以轻松地将您的意图传达给包更新的用户。如果您使用自定义版本控制“
Major.Year.Month.Build
”,其他客户将失去您的软件包更新意图。所以答案是肯定的,但不推荐。

在我想到之前,我已经考虑过这个问题。我(考虑到我个人的品味,我并不意味着我是对的)发现它(我的版本格式)更直观,而且,通过这种方式,它是一种实用的、令人愉快的使用方式(无论是作为一个开发人员必须发明版本号,还是作为一个消费者,都希望在版本号上一眼就能看出应用过时/相关性的基本线索)。然而,我仍然觉得我的版本看起来有点奇怪,所以我觉得无论如何都要遵守惯例(semver)。虽然我实际上接受了你的答案,实际上我也会这么做,但考虑到你在NuGet社区(我的社区刚刚开始)的经验,为了知识的完整性,我仍然非常感谢你,可以包括一段对我的问题的逻辑上正式的回答:是否允许使用非常规(特别是非semver)版本控制方案。我会批准你的回答(我觉得我不能这样做)@Ivan,这个问题有什么更新吗?你们能从答案中得到有用的信息吗?如果没有,你能让我知道更多关于这个问题的信息吗?
2.2017.3.4