Nuget软件包是不可变的。所有文档都非常清楚。
我正在调查内部Nuget服务器上的一个问题,该问题可以覆盖预发行软件包。通常,当尝试上传具有现有版本的软件包时,上传将失败。有问题的Nuget服务器是Artifactory服务器。
我立即认为这是一个错误,但是在寻找其他遇到相同问题的人时,我却转而发表暗示这是正常现象的帖子。
This person asks how to always get the latest version when repeatedly publishing v1.0.0-prerelease.
我还没有找到任何实际的文档,说可以在Nuget或Artifactory上覆盖预发行版软件包。我没想到,但是那些帖子把它当作事实!
答案 0 :(得分:0)
经过更多的研究和测试,得出的结论是这似乎是Artifactory的未记录的功能。
他们最接近证明这一点的地方是: https://www.jfrog.com/confluence/display/RTF/Managing+Permissions#ManagingPermissions-PreventingOverwritingDeployments
您可以防止用户或组覆盖已部署的发行版或 通过不授予“删除”权限来唯一快照。 非唯一 快照始终可以被覆盖(前提是“部署”权限为 授予)。
文档的该部分并非特定于任何种类的存储库。从未明确阐明Nuget预发行版软件包被视为“快照”的任何地方,但是在文档的任何地方(对于任何存储库类型)都没有使用术语“预发行”和“不稳定”。
由于无法关闭此功能,因此我的团队继续使用自动生成的预发行版本控制版本,以避免出现由于包覆盖而引起的问题。
nuget.org不允许覆盖预发行版软件包。