C# 让你解决方案乱七八糟的DLL放入指定文件夹

嗯,大家的解决方案可能会有许多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。

如果有,那就直接调用。如果没有,会抛出没找到文件的异常,这时你需要排查有没有放这个文件,文件名字对不对。

好了,本期教程到此结束~

posted @ 2019-12-15 15:54  田所浩托TrosuoTro  阅读(2754)  评论(1编辑  收藏  举报