C#根据 App.config 文件中的配置信息去查找并加载指定目录下的 DLL
System.IO.FileNotFoundException:“未能加载文件或程序集“AliNPOIExcel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。”
如何让程序识别不同目录下的dll?
方法一:配置App.config文件的privatePath
——【推荐】
这是最简单的方法,当然也有一定的局限性,就是没法对dll做控制,另外,无法解决第三方DllImprt
中引入的程序集不在根目录下的问题,不过无论怎么说,这个都基本解决了问题。
配置如下,多个目录用;分隔
<?xml version="1.0" encoding="utf-8" ?>
<configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" /></startup><!-- 添加以下内容 --><runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><probing privatePath="ext;lib;lib\include\NPOI"/></assemblyBinding></runtime></configuration>
注意,ext
和lib
和lib\include\NPO
都是你希望程序查找 DLL 的目录路径。多个目录之间可以使用分号 ";" 分隔。
当程序运行时,它将根据 App.config 文件中的配置信息去查找并加载指定目录下的 DLL。