当编译有外部引用的c#项目时,引用的dll被复制到项目的输出路径(exe旁边)。
当运行应用程序时,它期望在exe旁边找到dll。
我正在寻找一种方法来传播我的dll文件到不同的目录(初学者)。让exe在这些目录中查找dll文件。
例子:
假设我们有一个名为"App"的应用程序位于C:AppApp.exe
下,并且它还使用了一个名为"App.dll"的dll文件,该文件目前也位于C:App
下。
我希望创建一个名为C:AppDlls
的新目录,并将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文件移到该目录,但是应用程序崩溃了。
我错过了什么?
找到解决方案,文件App.exe.config
从我的基本目录中丢失。这就是为什么它不起作用。现在一切都很顺利。