.net dotnet nuget package references

xdnvmnnf  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(108)

我们有一种情况,即Microsoft Power BI nuget包引用了另一个具有已知安全漏洞的包。我们必须在生产前解决这个问题。我们有一个解决漏洞的方法。然而,我不完全理解这是如何工作的。
Power BI软件包引用Microsoft.Rest. ClientServer 2.3.21

由于我们无法控制API包,因此如果不进行分叉和构建,我们就无法更新它们的引用,而这是我们避免的。开发人员尝试的一件事是将以下包引用添加到项目中:Microsoft.Rest. Client 2.3.24.
在添加了这个包引用之后,API包中ClientServer的nuget包现在反映出它引用了ClientServer 2.3.24。
查看API包引用,它的ClientServer>= 2.3.21,因此它可以与2.3.24一起工作,但是如何以及为什么为我的ClientServer 2.3.24项目添加包引用会强制PowerBi.Api包更改其nuget包中的内部引用?

这就带来了另一个问题。假设我有一个包引用了另一个包,我们将使用MediatR示例(因为它也在屏幕截图中)。如果我想要我的包扩展MediatR 1.1.1的功能,我如何确保我的包只引用另一个包的特定版本,就像使用'^'和''的npm包一样。
对我来说,这似乎是未经特许和未经测试的沃茨,以允许一个部队包参考版本。如果'>='仅限于次要版本和修订版本,我可以更好地理解它,但似乎它甚至允许下一个主要版本。
根据上下文,现在有两个问题。
1.这到底是如何强制API使用ClientServer 2.3.24的?
1.如何将我的nuget包版本引用限制为特定版本?

7y4bm7vi

7y4bm7vi1#

1.计算直接依赖和传递依赖图;如果存在差异,默认情况下,最高的胜-依赖关系通常为“至少”
1.如果您将版本指定为"[2.4.5]"而不是"2.4.5",则表示“完全”-如果这对每个人都合适:太好了;如果有不可调和的三角洲,它就不会建立
这是一个比这更复杂,但这是衬衫的版本。因此,通过在应用程序级别使用更高版本添加显式引用:你已经增加了将被选中的版本(如果可能)
大多数情况下,人们认为硬突破是罕见的,会发生在“专业”,而你的开发人员将在专业格外谨慎。这也有助于测试任何一种方式,即使是点发布。

相关问题