我有一个可以生成多个NuGet软件包的解决方案,并且在构建期间打包了这些软件包。我希望将我的每晚构建版本标记为预发布,因此我相应地对软件包进行了版本化:1.2.3-PreRelease0001
。但是,一旦夜间构建通过测试,我想发布相同的构建,相同的软件包,但使用非PreRelease版本:1.2.3
。
我的问题:如何使用其他版本重新打包NuGet软件包?我想我可以破解一些unzip/edit/nuget pack
脚本,但是有更好的方法吗?
备择方案:
缺点:如果在构建过程中打包,则可以直接从
<Content>
文件骗局:想要分发我测试过的完全相同的位...
缺点: PreRelease软件包未标记为此类,并且可能会误认为已发布。
缺点:人们可能会倾向于引用非PreRelease版本。也许我可以将它们放在
GeneratedDoNotTouch
文件夹中... 最佳答案
在NuGet中,没有公共(public)API可以更改程序包的元数据。我想说最后一种解决方案是最好的,即在构建过程中同时生成预发行版和非预发行包。
为了防止人们意外使用非预发行版软件包,您可以先在私有(private)目录中创建它。然后,仅在构建通过测试后才发布它。
是的,您可以从软件包中提取nuspec文件,进行必要的更改,然后将其保存回软件包中。问题是,如果更改了nuspec格式,这可能会停止工作。
关于nuget - 将NuGet软件包声明为可投入生产后,如何重新包装它们?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23271043/