2011-08-09 30 views
0

是否可以在運行時更改DLL的路徑?我需要鏈接一個DLL,但是我將無法將該DLL提供給用戶,但我知道用戶在該硬盤上有該DLL。所以我給用戶顯示了一個通用表單,它可以輸入路徑,然後我必須採取該路徑(以字符串形式)並動態地將dll加載到我的程序中。加載後,我將使用該DLL的東西。在運行時設置引用的DLL路徑

這是可能的,即使如何做?

回答

0

添加到克里斯的答案。

爲了避免使用對加載的程序集反射,代碼的類對常見的接口組件中的,然後你可以實例化對象,像這樣:

Assembly assembly = Assembly.LoadFile(pathOfAssembly); 
InterfaceName instance = (InterfaceName)assembly.CreateInstance("fully qualified type name", true); 
+0

如果我沒有在該項目的DLL參考,不會編譯!當我添加引用時,但DLL不在EXE位置時,我在調用Main()之前得到一個Exeption! – GameScripting

+0

您需要將接口存儲在您動態加載的DLL和加載DLL的應用程序共有的程序集中。 – jdavies

0

您可以使用Assembly.LoadFile(pathOfAssembly)方法從路徑中動態加載程序集或dll。一旦它被加載,你可以創建它包含的類的實例和調用方法。