You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需重新编译修改已发布NuGet RC包版本并重新推送?

问题解答

不行,没法通过「拉取已发布的RC包→修改版本与标签→推送」这三步实现需求,原因如下:

  • NuGet包是包含程序集、元数据文件的压缩包,你拉取后就算修改了.nuspec里的版本号,程序集本身嵌入的版本元数据(比如AssemblyVersion、AssemblyInformationalVersion)还是原来的RC版本,会导致正式版包的外部版本号和内部程序集版本不一致,给使用者带来困惑,甚至引发兼容性问题。
  • 绝大多数NuGet注册表(包括你用的GitHub Packages)都不允许修改已发布的包,也不接受内容不一致的同名版本推送,就算你改了版本标签,推送时大概率会失败。
  • 这种修改方式不符合NuGet的规范,可能导致包管理工具出现异常。

正确的做法(无需重新编译源码)

你之前已经用--no-build基于编译好的产物打包了RC版,只要保留当时的编译输出目录,直接重新打包正式版即可:

  1. 确保之前dotnet publish生成的out目录(或者Release配置的编译产物目录)没有被删除
  2. 执行打包命令,指定正式版本号:
dotnet pack --configuration Release --no-build --output nupkgs /p:PackageVersion=4.5.0

--no-build参数会复用之前编译好的产物,完全不需要重新编译源码。
3. 推送正式版包:

dotnet nuget push nupkgs/org.package_one.4.5.0.nupkg --api-key xxx --source "github"

内容的提问来源于stack exchange,提问作者J. Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:36:00