New*_*ian 10 .net c# dll dependency-management transitive-dependency
.NET世界中管理导致版本冲突的传递依赖项的最佳实践是什么?
详情:项目A取决于项目B,而项目B又取决于图书馆C.
也
项目A还依赖于项目X,它取决于库C的不同和(可能)不兼容的版本.
A-> B-> Cv1.0
&
A-> X-> Cv2.0
其中
Cv1.0 <> Cv2.0
有没有办法让这项工作?
可以在不使用GAC的情况下完成吗?
即使B和X只是二进制格式(源不可访问),它能否完成?
换句话说,有一种方法可以让Project B和X在项目A中一起使用时使用它们自己的依赖项而不会引起冲突.
注意:我意识到理想情况下我根本不应该有这个问题,但是由于对外部库的依赖扩展,这将是一个不可避免的副作用.所以我想知道它应该如何最好地处理它.
关于堆栈溢出有很多类似的问题。例如,在同一解决方案中引用2个不同版本的log4net
摘要:
Run Code Online (Sandbox Code Playgroud)<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="C" publicKeyToken="C's public key token" /> <codeBase version="version string for C1.0 e.g. 1.0.0.0" href="1.0\C.dll" /> <codeBase version="version string for C2.0 e.g. 2.0.0.0" href="2.0\C.dll" /> </assemblyIdentity> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
您可以使用sn -T C.dll获取C的公钥令牌
如果C的v1.0和v2.0具有不同的公钥(尽管理想情况下不应该),则应包括两个dependentAssembly标签。
| 归档时间: |
|
| 查看次数: |
2213 次 |
| 最近记录: |