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>