c#基础之DLL混乱
.NET 概念
程序集(ASSEMBLY)
ASSEMBLY 是一个库或者一个包含附加元数据的可执行程序,在.NET CORE概念里,包含Main()方法的主程序被创建为结尾为dll的库文件。
什么是DLL混乱
如下图所示假设有 ApplicationX程序集,运行时需要调用类库LibA和LibB,其中LibA有两个版本,v1.0和v1.1。ApplicationX调用LibA v1.1。然而LibB却调用了LibA的v1.0。这样的话ApplicationX在运行时到底调用了LibA哪个版本?

答案是哪个先需要就调用哪个,比如先调用了LibB,则LibA1.0被调用。但是如果LibA1.1有一些必须的元数据,那么就会导致一些问题。
解决方案
可以通过配置web.config(或者app.config)来帮助我们解决这个问题。需要在web.config中配置如下节点:
<runtime>
<assemblyBinding x

这篇博客探讨了.NET程序集中DLL版本冲突的问题。当ApplicationX依赖于LibA的v1.1,而LibB依赖于v1.0时,运行时可能会出现混乱。解释了.NET会优先调用先需要的DLL版本,这可能导致元数据不匹配的问题。文章提供了解决冲突的方法,即通过配置web.config或app.config文件来指定DLL版本。
最低0.47元/天 解锁文章
2945

被折叠的 条评论
为什么被折叠?



