目前我们使用Artifactory Professional版本4.16.0来托管我们所有的NuGet包。最近,我们需要从我们的Feed中“隐藏”某个软件包的旧版本,以防止用户安装它。我们仍然需要程序包可用,因为我们的一些遗留应用程序引用了较旧的程序包(并且由于各种原因无法更新)因此我们的CI要求程序包在进行NuGet还原时可用。
是否有设置或配置使Feed中的特定版本的软件包不可见?如果是这样我怎么能这样做呢?
例如,在Visual Studio中,用户无法在Feed中看到 MyPackage.1.0.0.nupkg ,但CI仍然可以请求它并对其执行NuGet还原。可以在Feed上看到 MyPackage.2.0.0.nupkg 。
谢谢。
答案 0 :(得分:1)
是否有设置或配置使Feed中的特定版本的软件包不可见?如果是这样我怎么能这样做呢?
根据NuGet Repositories,我担心Artifactory没有这样的配置来使包中的特定版本的包不可见。
作为一种变通方法,您可以在packages.config
或PackageReference
上将Package versioning添加到包中,例如,将allowedVersions="(9.0.1,11.0.1]"
添加到包Newtonsoft.Json
:
<packages>
<package id="Newtonsoft.Json" version="11.0.1" allowedVersions="(9.0.1,11.0.1]" targetFramework="net462" />
</packages>
使用此设置后,当您打开nuget包管理器UI时,无法选择9.0.1及更低版本:
希望这有帮助。