打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#配置私有程序集

  在《C#动态程序集的加载、创建实例、序列化与反序列化》中讲到了,.NET程序在运行时默认只加载与主程序在同一目录的程序集,而如果我们把一些dll放到了其他我们自定义的内层文件夹中,就无法探测到。之前的文章是为了动态反序列化而通过AppDomain里的AssemblyResolve事件来手动加载需要的程序集,但更常见的应用是我们希望定义多个子目录来把相关类库进行更好的区分,而在程序运行时又能自动加载这些目录里的程序集,这就需要用到C#配置文件中的私有文件夹配置方法。


  我们可以在项目中创建app.config文件来配置私有程序集,比如我们把软件的模块都放在了一个子目录Modules里面,要使CLR能探测到这个文件夹,只需要如下配置config文件

1
2
3
4
5
6
7
8
9
10
11
12
13
<configuration>
  
    <runtime>
  
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  
            <probing privatePath="Modules"></probing>
  
        </assemblyBinding>
  
    </runtime>
  
</configuration>

  其中privatePath就对应了相应的子目录名称。需要注意的是,privatePath不能指定绝对路径。另外,privatePath还可以指定多个子目录,只需用分号分开即可,比如

1
<probing privatePath="Modules; Modules\Datas; Modules\Services"></probing>

  这样,程序运行过程中,CLR会主动去探测Modules,Modules\Datas和Modules\Services这个三个子目录 。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
设置程序PrivatePath,配置引用程序集的路径(分离exe和dll)
C#学习笔记(三)——各种头衔的程序集
C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁
使用ff
(4)绑定程序集配置策略
make menuconfig详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服