通常,您必須將應用程序使用的所有.dll文件放在與.exe文件相同的位置。我想將這些庫保存在其他專用文件夾中,並只顯示我的應用程序在哪裏尋找它們(通過app.config中的某個路徑或類似的東西)。我該怎麼做呢?如何將.dll文件與使用它們的.exe文件分開?
回答
您可以使用app.config中的<probing>
element指定在哪裏查找依賴關係。我相信這必須是exe文件所在的目錄,而不是在磁盤上的任意位置。
查看"Locating the assembly through codebases or probing"瞭解更多關於這如何掛在一起的更多信息。
以及我需要在磁盤上的其他地方,而不是應用程序的目錄子目錄 – agnieszka 2009-06-30 09:16:11
在這種情況下,我認爲你的選擇1)GAC; 2)Assembly.LoadFrom(即手動執行); 3)調查codeBase元素,但我不確定這會覆蓋你的情況。 – 2009-06-30 09:21:35
您可以使用Reflection從指定的路徑加載到dll中,然後訪問其中的所有類和方法,雖然這將是一項艱鉅的工作!你也將失去智能感知的好處,但它是可能的,請參閱:
也考慮GAC - 其目的是爲了保持組件;)
其實有一些其他的方式,西裝我的需求最好。使用反射(assebly.loadfrom)是不愉快的,需要我的代碼進行很多更改。但是,您可以向appDomain.AssemblyResolve事件添加處理程序,並在找不到要求的程序集的位置時顯示它。
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
return Assembly.LoadFrom("C:\\TestAssembly.dll");
}
我建議您使用GAC或分發所有依賴的DLL與EXE。否則,您可能會冒險得到模糊的版本控制錯誤或突然停止工作的應用程序。
另外,不要忘記,如果您的共享代碼在網絡共享上,您可能需要修改每臺計算機的安全設置。
Regards
- 1. COM interop DLL文件位於與exe文件分開
- 2. 如何合併exe文件與DLL和其他文件?
- 3. 通過將它們傳遞給.exe來打開文件
- 4. 如何打開* .jar文件?它與Windows的。* exe相同嗎?
- 5. 使用.dll文件編譯可執行文件,.dll相對於.exe文件
- 6. 如何附加JavaScript文件並在構建dll文件時使用它們
- 7. 如何從DLL/EXE創建MSIL文件
- 8. dll文件或.exe文件丟失
- 9. 注入dll到exe文件
- 10. 使用C++模塊時,是否將函數聲明(.hpp文件)與它們的定義(.cpp文件)分開?
- 11. 如何將.ico文件與已編譯的.exe文件合併?
- 12. 如何使用ILMerge將XML文檔文件與DLL合併?
- 13. 如何將EXE,DLL,SYS等文件類型一起調用?
- 14. 如何將dll文件添加到C#項目並正確使用它們?
- 15. SharpDevelop - 如何嵌入,編譯EXE文件與DLL的程序集?
- 16. 如何從EXE打開的文件夾打開文件。 VB
- 17. 如何區分DLL文件
- 18. 使用RoundhousE與dll文件
- 19. 如何在ubuntu中打開dll和exe文件
- 20. 如何從VB6 DLL中打開WPF exe文件?
- 21. 將.exe C++文件(創建窗口)轉換爲.dll C++文件並在C#中使用該.dll文件。
- 22. 如何使用PowerShell來提取.dll文件或數據.exe文件
- 23. 如何使用外部.dll創建.exe文件?
- 24. Maven Assembly插件破壞exe文件dll
- 25. Py2exe:將靜態文件嵌入exe文件本身並訪問它們
- 26. 使用TextEdit打開文件並將它們導出爲pdf
- 27. 打開.dll文件並更改它
- 28. 如何使用VBA打開文本文件並將它們移動到文件夾?
- 29. 將dll文件和c-exe文件打包到一個文件中
- 30. 分析用於代碼膨脹的.exe/.dll(Windows PE)文件
我很好奇你爲什麼這樣做?如果原因是這樣你可以獨立地更新這些dll,每個應用程序可能是一個wcf web服務可能提供更好的解決方案?老實說呢 – Calanus 2009-06-30 08:53:15
?我被告知;)我們已經失去了使用相同的庫的應用程序,他們想把它們保存在一個地方 – agnieszka 2009-06-30 09:17:02