dotnet nuget 包参考

问题描述 投票:0回答:1

我们遇到过这样的情况:Microsoft Power BI nuget 包引用了另一个具有已知安全漏洞的包。我们必须在投入生产之前解决这个问题。我们有针对该漏洞的解决方案。但是,我不完全理解这是如何工作的。

Power BI 包参考 Microsoft.Rest.ClientRuntime 2.3.21

由于我们无法控制 MicrosoftPowerBi.Api 包,因此我们无法在不分叉和构建自己的情况下更新它们的引用,这是我们避免的。开发人员尝试的一件事是将以下包引用添加到项目中: Microsoft.Rest.ClientRuntime 2.3.24.

添加此包引用后,PowerBi.Api 包中 ClientRuntime 的 nuget 包现在反映它引用 ClientRuntime 2.3.24。

查看 PowerBi.Api 包引用,它的 ClientRuntime >= 2.3.21,因此它与 2.3.24 一起工作是有意义的,但是如何以及为何为我的项目添加 ClientRuntime 2.3.24 的包引用会强制PowerBi.Api 包要更改其 nuget 包中的内部引用吗?

这又带来了另一个问题。假设我有一个引用另一个包的包,我们将使用 MediatR 示例(因为它也在屏幕截图中)。如果我希望我的包扩展 MediatR 1.1.1 的功能,如何确保我的包仅引用另一个包的特定版本,就像使用“^”和“~”使用 npm 包完成的那样。

对我来说,允许强制包参考版本似乎是未知的和未经测试的水域。如果“>=”仅限于次要版本和修订版本,我可以更好地理解它,但似乎它甚至允许下一个主要版本。

鉴于上下文,现在有两个问题。

  1. 这到底是如何强制 PowerBi.Api 使用 ClientRuntime 2.3.24 的?
  2. 如何将我的 nuget 包版本引用限制为特定版本?
.net nuget
1个回答
0
投票
  1. 计算直接依赖和传递依赖的图;如果存在差异,默认情况下最高的获胜者 - 依赖关系通常是“至少”
  2. 如果您将版本指定为
    "[2.4.5]"
    而不是
    "2.4.5"
    ,则表示“完全正确” - 如果这对每个人来说都很好:太好了;如果存在不可调和的增量,它就不会构建

它比这更复杂一点,但那是衬衫版本。因此,通过在应用程序级别自行添加具有更高版本的显式引用:您已经增加了将选择的版本(如果可能) 人们普遍认为硬中断很少见,并且会发生在“专业”上,并且

开发人员

在专业中会格外谨慎。它还有助于测试任何一种方式,甚至对于点发布也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.