C#中dll放到子目录的引用问题

本文介绍了如何在C#项目中避免exe文件周围过多的dll依赖。方法一是通过修改App.config文件,配置<assemblyBinding>的<probing>元素,指示程序在运行时查找dll的额外目录。方法二是利用Visual Studio的Post-build事件,拷贝dll到指定目录。这两种方法可以帮助整理项目结构,保持目录整洁。
摘要由CSDN通过智能技术生成

在一个C#的项目里添加引用了好多个dll程序(默认自动复制到本地那种),并通过using namespace...调用的。现在在主程序里需要调用好多个外部的dll,变了生产项目后,exe同一目录太多dll了。现在想按照一定的规则给这些dll分别保存在exe下的不同一个目录,如suport_dll , manager_dll目录下,该如何做呢?     

方法1:

解答:   在应用程序运行的时候,会检查当前程序运行的目录有无所需要的dll文件,如果找不到,就会查找APP.Config配置文件中所配置的目录 

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

按照此讲解,我的App.config修改如下:

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin;dll"/>
    </assemblyBinding>
  </runtime>
</configuration>

我的dll文件放在dll文件夹下

e10625ee17ac2ebe289a349514fcbbd4.png

然后将dll文件夹包括到项目中,将文件的复制到输出目录属性设置为始终复制,将引用中所需的dll的复制到本地属性设置为false

dab412bb55fc26323a1c3d343d019ce5.png

方法2:

下面假设 Project 名为 Gamma4RTD,需要调用的 dll 文件为 rtddll.dll。IDE 是 Visual Studio 2015

打开 Visual Studio 2015 -> Project -> Gamma4RTD Properties...。然后在 Post-build event command line: 下面填写如下这条命令即可:

Copy  "$(ProjectDir)rtddll.dll"  "$(ProjectDir)$(OutDir)"

00087a2b5012b76073bc8444e6aa5c30.png

-----------------------------------

需要进技术群交流的,请添加小编zls20210502

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zls365365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值