gpt4 book ai didi

nuget - NuGet 中的包依赖解决方案和命名冲突

转载 作者:行者123 更新时间:2023-12-01 03:52:29 26 4
gpt4 key购买 nike

在我的工作团队中,我们依赖两个 NuGet 提要:来自 NuGet.org 的官方提要用于公共(public)包,而我们文件服务器上的文件夹用于内部包。

这对我们来说效果很好,但我认为我们有一个潜在的问题。看起来 NuGet 根据包名称和版本号解析依赖项。只有一个提要在播放,这似乎不是问题。使用多个提要时,存在名称冲突的风险。根据 NuGet 的解析规则,它似乎会选择最高版本号,而不管提要如何。

这让我们有点尴尬。这不太可能发生,但如果有人要在 NuGet.org 提要上发布与我们内部提要中的包名称相同的包,我们最终可能会包含一个意外包。

我可以想到两种方法来解决这个问题:

1)将我们依赖的包拉到我们的私有(private)提要中。虽然这是可行的,但由于不断将软件包更新下载到我们的私有(private)订阅源中的管理负担,它并不是很有吸引力。

2) 通过 NuGet.org 提要发布占位符包以保留包名称。这似乎可以工作,但对我来说感觉就像一个黑客。

有没有更好的办法?

谢谢你的帮助!

最佳答案

这可以通过我们的产品 ProGet 轻松完成。 (本质上它是一个具有附加功能的私有(private) NuGet 存储库),尽管这样做的功能仅在付费版本中可用。本质上,您要做的只是指向 Visual Studio 中的 ProGet 托管提要。默认情况下,ProGet 源连接到官方的 NuGet.org 源,并且还能够下载官方源中的所有包。

但是,如果您要设置以下“连接器过滤器”:

*
!YourPackageNameOrPrefix

然后它将阻止与您的同名软件包从官方提要中下载。

如果您对第 3 方解决方案不感兴趣,您始终可以使用不太可能被复制的名称(例如 YourCompany.XXXXX)来命名您的包,但这当然不会阻止任何人故意复制它。

关于nuget - NuGet 中的包依赖解决方案和命名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com