簡體   English   中英

如何從動態位置將C#dll加載到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM