![](/img/trans.png)
[英]How to dynamically load a C# dll from a C++ DLL
[英]How can I load a C# dll into a C# dll Project from a dynamic location?
程序ClosedSourceProgram啟動,並將我的文件復制到未知位置。 它們的結構將是:
?\project.dll
?\project\usefultools.dll
我必須將有用的tools.dll加載到我的項目中,但是我不知道如何告訴C#VS2010 dll的位置
project\usefultools.dll
我將該庫添加到我的程序集中作為參考,以便在開發過程中知道它的內容-因此,它試圖比我可以通過Assembly.LoadFrom()
加載的時間早。
我現在手動將文件復制到ClosedSourceProgram-root目錄。 現在可以不使用Assembly.LoadFrom()
加載。
當前的工作樹:
?\ClosedSourceProgram\ClosedSourceProgram.exe
?\ClosedSourceProgram\usefultools.dll
?\ClosedSourceProgram\temp\project.dll
我想要的樹:
?\ClosedSourceProgram\ClosedSourceProgram.exe
?\ClosedSourceProgram\temp\project.dll
?\ClosedSourceProgram\temp\project\usefultools.dll
我想告訴我的項目,如果它不能在根目錄中找到dll,則應該搜索子目錄-我該怎么做?
您可以在運行時使用Assembly.LoadFrom從任意位置加載程序集,並傳遞文件名。
編輯:
另一個選擇是訂閱AppDomain.AssemblyResolve事件,並按需加載程序集。 這具有允許使用任何結構的優點,因為所有未發現的程序集都可以根據您的需要進行加載。
您可以隨時嘗試Assembly.LoadFrom()
如果程序集位於應用程序路徑的任何子文件夾中,則可以使用“〜”運算符。
Assembly.LoadFrom( “〜\\項目\\ usefultools.dll”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.