0
編譯具有外部引用的C#項目時,所引用的dll被複制到項目的輸出路徑(exe旁邊)。使用「探測」從不同目錄加載dll
運行應用程序時,它希望在exe旁邊找到dll。
我正在尋找一種方法來將我的dll文件傳播到不同的目錄Dll中以供初學者使用)。並讓exe文件查找這些目錄中的dll文件。
例子:
比方說,我們有一個名爲「應用程序」位於C:\App\App.exe
下的應用程序,並且還使用了被稱爲「App.dll」這是目前也位於C:\App
下一個dll文件。
我想創建一個名爲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文件到該目錄,但該應用程序崩潰。
我錯過了什麼?
與什麼錯誤崩潰? –
有:'System.IO.FileNotFoundException:無法加載文件或程序集'。 我也收到'Set connectionId拋出異常。行號5和行位置71'。 – Idanis
那麼,創建一個c:\ app \ bin目錄並告訴CLR去查找Dll子目錄當然是行不通的。請注意託管過程,它使用appname.vshost.exe.config。如果您仍有問題,請使用Fuslogvw.exe。不要這樣做,這是一個壞主意。 –