本小白,近期碰到一个有关dll无法生成和引用的问题,困扰许久,访遍博客论坛。
今天我们就来聊聊dll,他是类库以类库的形式输出时,在输出路径处产生的文件。当别的类库通过引用需要调用其中的方法的时候,实际上就是读取了被调用类库的dll文件。(dll 动态链接库)。所以引用的路径,就是被引用类库输出dll的地址。
但是它没有想象中那么简单。
按照引用程序集路径的不同,程序集DLL分为两类:
1)全局DLL(在GAC中注册,GAC——全局程序集缓存),有关GAC的详细资料可以参考一下链接:
http://blog.youkuaiyun.com/prince_lintb/article/details/40789211
2)私有DLL,默认情况下,添加程序集引用的时候,程序集DLL会复制到可执行目录下。
对于私有DLL,当数目众多时,由于没有分类,会显得比较凌乱。在发布软件的时候也不希望在软件安装目录下看到大量的dll文件。如果能将其分类放在不同的文件夹下就再好不过了。
问题是,如何解决应用程序对DLL的查找路径问题呢?答案是在配置文件中添加如下配置项。(app.config或者web.config,没有就新建,添加->配置文件)
<configuration>
<runtime>
<!--xmlns是必需的特性。指定程序集绑定所需的 XML 命名空间。 使用字符串“urn: 架构-microsoft-com:asm.v1”作为值。-->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="yes"/> <!--指定运行时是否使用发布者策略-->
<!--