C# 将引用的DLL放入指定文件夹
一、找到程序中的App.config文件,没有就创建一个config文件;然后添加下面的代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<publisherPolicy apply="yes" />
<probing privatePath="dll" />
</assemblyBinding>
</runtime>
privatePath="xxx"可以指定多个文件夹,比如写成这样
PrivatePath="dll;bin;srt"这相当于指定dll文件夹、bin文件夹、srt文件夹均是你的dll文件夹。
也可以这样:PrivatePath="bin/srt"相当于指定bin文件夹下的srt文件夹为你的托管目录。
然后在和你应用程序同级目录(xxxx.config)下新建你指定的文件夹的名字~
嗯,弄完后把你所需要托管的dll都扔到这个文件夹里。
二、修改dll的文件属性
把你所有引用的DLL,包括NuGet的dll。除了系统以外的dll。
把这些引用属性里的"复制本地"按钮 给改成False。
这样程序就不会去复制dll到调试目录下而会老老实实地搜你指定给它的文件夹里有没有这些dll。
如果有,那就直接调用。如果没有,会抛出没找到文件的异常,这时你需要排查有没有放这个文件,文件名字对不对。