在 nupkg 中编辑 nuspec 文件
Posted
技术标签:
【中文标题】在 nupkg 中编辑 nuspec 文件【英文标题】:edit nuspec file in nupkg 【发布时间】:2018-02-17 16:50:46 【问题描述】:我想在 TFS 上的 ci 进程之后创建一个语义版本化的 nupkg。 nupkg 应该如下所示。
MSVersioningSample.1.0.7-ci-20170926-184446.nupkg
但是,当我决定它是一个发布版本时。我想重命名 nupgk 并将其重新发布到 nuget feed 作为发布版本。
MSVersioningSample.1.0.7.nupkg
当我重命名 nupkg 文件并发布它时,它的版本号仍然保持不变,并且在发布期间发生冲突。
然后,我意识到了。 nupkg 文件中有一个 .nuspec 文件,我必须更改 nuspec 文件中的版本号。
我的问题是,如何使用 (powershell) 脚本编辑 nupkg 中的 nuspec 文件?
【问题讨论】:
【参考方案1】:似乎您想使用预发布版本 nupkg,但在准备发布时删除预发布。您必须重写nuspec
文件中的<version>
元素。但是处理所有情况并不是那么容易,例如,如果您的构建生成了多个包,其中一些包相互依赖?现在您还需要发现依赖图并重写适当的元素。
要更新“*.nuspec”文件中的版本字段,您可以在 GitHub 中引用此 powershell 脚本:Nuspec Auto Update
另一种解决方法是在构建过程中添加两个 nuget 打包步骤。
一个带有-ci
号码的包,一个没有。
然后你只需要确保只将“发布”包复制到 ArtifactStagingDirectory 已经没有预发布段
还要设置您的版本,以便它使用内部版本号作为版本名称。一个小问题,其中包括 -ci
号码。
【讨论】:
以上是关于在 nupkg 中编辑 nuspec 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在创建nuget包时使用-NoDefaultExcludes