C#中dll放到子目录的引用问题
Posted dotNET编程大全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中dll放到子目录的引用问题相关的知识,希望对你有一定的参考价值。
在一个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>
网址:http://www.360doc.com/content/15/1106/16/14578864_511226718.shtml
按照此讲解,我的App.config修改如下:
配置如下,多个目录用;分隔
<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文件夹下
然后将dll文件夹包括到项目中,将文件的复制到输出目录属性设置为始终复制,将引用中所需的dll的复制到本地属性设置为false
还有其它的方法可以参考:https://blog.csdn.net/u012842630/article/details/90744245
方法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)"
https://blog.csdn.net/heray1990/article/details/72270671
以上是关于C#中dll放到子目录的引用问题的主要内容,如果未能解决你的问题,请参考以下文章