C# 从同时使用某些包的项目中引用使用NuGet包的程序集
我有一个复杂的库C# 从同时使用某些包的项目中引用使用NuGet包的程序集,c#,.net,assemblies,nuget,.net-assembly,C#,.net,Assemblies,Nuget,.net Assembly,我有一个复杂的库a,它由几个c#项目组成,生成以下程序集: A.核心 A.缓存 A.伐木 蒙哥达 这个库是我写的,我可以完全访问它的源代码。 这取决于几个NuGet软件包,假设它们是: 蒙哥卡司机 企业图书馆 企业图书馆 GAC中未安装这些库(MongoDb驱动程序和EntLib) 我还有一个web项目B,我想在其中使用库a作为DLL的引用(不包括解决方案B中的项目)。 web项目依赖于几个NuGet软件包,其中包括: 蒙哥卡司机 企业图书馆 解决方案A和B中这些软件包的版本不匹配,
a
,它由几个c#项目组成,生成以下程序集:
- A.核心
- A.缓存
- A.伐木
- 蒙哥达
- 蒙哥卡司机
- 企业图书馆
- 企业图书馆
B
,我想在其中使用库a
作为DLL的引用(不包括解决方案B
中的项目)。
web项目依赖于几个NuGet软件包,其中包括:
- 蒙哥卡司机
- 企业图书馆
A
和B
中这些软件包的版本不匹配,因为它们不是同步开发的。图书馆A
是一年前开发的,从那时起就按原样使用
问题:分发库A
的正确方式是什么
A
依赖项,任何解决方案都可以使用它a
依赖项,则它们不会冲突A.Core、A.Caching、A.Logging、A.MongoDb
B
使用的是mongocsharpdriver版本1.5,而libA
使用的是版本1.1(版本不太兼容)处理“引用与引用的引用”冲突的正确方法是什么?管理共享引用的最佳方法是为库A定义任何依赖项(包括版本),其中定义了库A依赖的依赖项。如果不想将库A发布到公共NuGet提要,可以
NuGet有一些工具将尝试查找与项目及其依赖项兼容的依赖项版本。不幸的是,这仍然不能解决上面第3点中的问题,您的解决方案及其依赖库使用相同外部依赖项的互不兼容版本。在这种情况下,您只需重新处理解决方案B或库A,以便它们使用相同版本的mongocsharpdriver。创建我自己的软件包是一个我不知道的好选择。我相信这是在这里能做的最好的事情。非常感谢。