嗯,大家的解決方案可能會有許多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。
如果有,那就直接調用。如果沒有,會拋出沒找到文件的異常,這時你需要排查有沒有放這個文件,文件名字對不對。
好了,本期教程到此結束~