【问题标题】:How to resolve a conflict in dependency version in a nuget package?如何解决nuget包中依赖版本的冲突?
【发布时间】:2020-09-09 21:28:25
【问题描述】:

我们正在开发一个打包为 nuget 的类库。该库依赖于 Unity.Container。我们正在分发这个库以供其他团队的几个其他项目使用。这些项目都使用 Unity.Container。但问题是其中一个项目使用较旧版本的 Unity,并且更新/更改版本不是两个项目的选项。

  1. 如何打包我的 nuget 库以使我们能够满足两个项目的版本?

我们在 Unity.Container 中使用的只是基础知识,RegisterType、RegisterInstance 和 Resolve。

  1. 是否有一种设计模式可以完全消除在我们的 nuget 包中添加 Unity.Container 作为依赖项的需要?

【问题讨论】:

  • 您的类库及其依赖项之间是否有任何来自Unity.Container 的类型交换?
  • 不,我们只是使用 UnityContainer 的方法进行注册和解析。
  • 那么绑定重定向应该按照 Alexander Powolozki 的建议工作

标签: c# design-patterns dependency-injection nuget unity-container


【解决方案1】:

您可以在目标项目中使用程序集重定向来指向所需版本的引用程序集 (unity.container)。

【讨论】:

  • 当然你可以做得比这更好,可能对添加重定向语法很有用,你将如何找到令牌和正确的版本号等
  • @MichaelRandall 拥有关键字“Assembly binding redirect”,可以在 15 秒内搜索到所有相关信息。
猜你喜欢
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 2018-10-26
  • 2018-11-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多