使用“探测”从不同的目录加载dll

本文关键字:加载 dll 探测 使用 | 更新日期: 2023-09-27 18:17:35

当编译有外部引用的c#项目时,引用的dll被复制到项目的输出路径(exe旁边)。

当运行应用程序时,它期望在exe旁边找到dll。

我正在寻找一种方法来传播我的dll文件到不同的目录(初学者)。让exe在这些目录中查找dll文件。

例子:

假设我们有一个名为"App"的应用程序位于C:'App'App.exe下,并且它还使用了一个名为"App.dll"的dll文件,该文件目前也位于C:'App下。

我希望创建一个名为C:'App'Dlls的新目录,并将App.dll文件移动到那里,同时确保App.exe文件知道在新位置查找dll。

我在互联网上搜索并找到了探测解决方案。这是我的代码(编辑"App.config"文件):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas=microsoft-com:asm.v1">
      <probing privatePath="Dlls" />
    </assemblyBinding>
  </runtime>
</configuration>

我编译了我的应用程序,创建了dll目录并将所有dll文件移到该目录,但是应用程序崩溃了。

我错过了什么?

使用“探测”从不同的目录加载dll

找到解决方案,文件App.exe.config从我的基本目录中丢失。这就是为什么它不起作用。现在一切都很顺利。