我们应该每天在NuGet上安装我们的夜间版本吗?客户要求这样,但他们每年都有大量的包裹。 NuGet是为此目的而设计的吗?我们如何标记稳定版本呢?
感谢。
答案 0 :(得分:2)
没有什么能阻止你把你的夜间版本放在NuGet上。一些团队,例如ScriptCS团队和ASP.NET团队使用MyGet进行夜间构建,而不是使用主NuGet源。
您可能希望将这些构建与稳定版本区分开来,至少在主NuGet供稿上是这样。您需要使用版本号(例如 1.0.1-alpha1 )将这些版本标记为预发布的NuGet包,并使用1.0.1作为稳定版本。但是,如果您使用MyGet,则不需要将这些构建标记为预发布,如果您不想这样做。
答案 1 :(得分:2)
首先,从用户的角度思考。
即使顾客每晚安装一次,如果出现问题,他也可以在夜间恢复稳定。为此,绝对要求是您发布的每个构建的唯一版本方案。
假设您的客户已安装版本1.0.1-nightly.1234
,适用于hin。现在他对1.0.1-nightly.1235
做了更新,这个更新被破坏了,他无法继续。他应该是一个能做的事情
uninstall-package YourPackage
install-package YourPackage -version 1.0.1-nightly.1234 -pre
我知道你不想用你的夜间版本搞乱nuget.org所以你可以使用另一个feed或设置你自己的服务器(也许你的构建服务器已经可以做到这一点,我使用teamcity可以做nuget部署并在nuget服务器中构建,即使我从未使用它到目前为止,但我打算这样做。)
也许您可以在nuget.org上每月预发布一次,也可以手动发布您认为相当稳定的夜间版本。
我建议您更改您的版本方案,在您的构建1.0.1-nightly.20140520
中为自己的Feed添加日期,并为正式版本添加1.0.1-nightly
。
nuget本身支持<major>.<minor>.<patch>-<buildname>.<revision>
等版本控制方案,但nuget.org只支持<major>.<minor>.<patch>-<buildname>