嗯,大家的解决方案可能会有许多dll,这样不美观,而且也麻烦。
很多小白都不知道如何将这些dll放到如自己程序的bin文件夹下。
本渣今天来试着将dll复制到指定的文件夹下~
比如我之前做的一个Winform使用WebKit内核。然后webkit的dll和文件夹就一大堆全堆积在debug目录下。
这也太乱了吧!!!!!
于是我们便打算将这些文件塞入一个叫bin的文件夹内。
只让我的winform程序能被用户一眼看到,让其他麻烦的dll藏在bin就好了owo。
第一步:在程序内新建App.config文件,如果有就跳过
第二步:打开
然后加入这段代码
这段代码的PrvatPatch所指的是你的dll托管目录
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="bin"/> </assemblyBinding> </runtime>
PrivatePath="xxx"可以指定多个文件夹,比如这样写
PrivatePath="233;666;555"这相当于指定233文件夹、666文件夹、555文件夹均是你的dll文件夹。
也可以这样:PrivatePath="2333/4444"相当于指定2333文件夹下的4444文件夹为你的托管目录。
然后在和你应用程序同级目录(xxxx.config)下新建你指定的文件夹的名字~
嗯,弄完后把你所需要托管的dll都扔到这个文件夹里awa。
别着急,我们还有最后一步~
把你所有引用的DLL,包括NuGet的dll。除了系统以外的dll。
把这些引用属性里的"复制本地"按钮 给改成False。
这样程序就不会去复制dll到调试目录下而会老老实实地搜你指定给它的文件夹里有没有这些dll。
如果有,那就直接调用。如果没有,会抛出没找到文件的异常,这时你需要排查有没有放这个文件,文件名字对不对。
好了,本期教程到此结束~
原文地址:https://www.cnblogs.com/Dinnerbone/p/12044417.html