如何控制C#引用DLL的位置

 

 

 

引用的dll都放在根目录下,随着项目的日益增大,根目录下充满了各种各样的dll,非常的不美观。

 

如何让程序识别不同目录下的dll?

这是最简单的方法,当然也有一定的局限性,就是没法对dll做控制,另外,无法解决第三方DllImprt中引入的程序集不在根目录下的问题,不过无论怎么说,这个都基本解决了问题。

配置如下,多个目录用;分隔

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="3rdLib;MyLibs;SubFolder\Sub.dll"/>
     </assemblyBinding>
</runtime>

 

 

 

 

.net程序如何把引用的dll放到子目录里面

 

.net程序引用dll,一般都会把dll文件放在Debug目录底下。如果引用的dll很多,比如超过20个,整个目录看起来就很乱,

 

在config加入如下:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

这样,我们就可以加子目录,把各个dll分门别类的放好

 

 

C# 将引用的DLL文件放到指定的目录下

 

引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱而且不利于管理。为了更好的管理软件中的各种文件应该分门别类的放入相应的文件夹中。

下面是解决该问题的一种方法:

右键点击项目:属性-》设置,项目会生成一个app.config文件,在<configuration>节点后面添加<runtime>节点再添加下面的节点,重新生成一下就可以达到预期效果了。指定的目录即为生成exe所在路径的次级dll文件目录。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
    </startup>
</configuration>

在配置文件中,添加一个AssemblyBinding元素,可多个路径,用英文分号分隔。

在<configuration>节点后面添加<runtime>节点再添加下面的节点,

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin/dll;" />
    </assemblyBinding>
  </runtime>
</configuration>

 

修改dll文件的引用属性

点击添加成功的引用,将“复制本地”改成false(不然程序运行的时候会将子文件夹下的dll文件复制到根目录中)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值