我們目前正在基於提供給我們的API基於.net 4.0開發外部實用程序。從共享文件夾運行程序的問題
啓動外部實用程序的主程序位於虛擬服務器上。因此,每個用戶都可以通過訪問網絡文件夾並啓動.exe來啓動該程序。
在主程序中有一個啓動外部實用程序的選項,這些實用程序也是從網絡路徑啓動的。
外部工具通過api dll連接到主程序。如果我沒有弄錯,dll是一個activex組件。
所有開發者都有本地安裝的主程序。這需要在.Net中創建參考。如果安裝不可用,則不能綁定引用。 對於開發人員來說,該工具起作用。
但是對於沒有完全安裝的最終用戶,該工具不起作用,因爲它進入註冊表並尋找一些值。這些在終端用戶站不可用。
最終用戶試圖啓動
Unable to cast COM object of type 'System.__ComObject' to interface type 'MegaMapp.MegaCurrentEnv'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{33D6C7C0-7D1B-450E-B8A4-8A8611D5B40F}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))
{33D6C7C0-7D1B-450E-B8A4-8A8611D5B40F}是這是不提供給最終用戶的註冊表項時,得到這樣的警告。
有沒有辦法告訴他們應該從exe文件所在服務器加載注冊表項的工具,而不是從本地註冊表中加載註冊表項?
activex dll是我們可以與軟件進行通信的唯一途徑。所以我們用api調用構建了.net程序。 在客戶機上註冊dll是不可能的,因爲它們在服務器上。 – 2012-02-16 11:29:12
UNC路徑可能工作,您是否嘗試註冊它? – jgauffin 2012-02-16 11:31:04
註冊DLL不能解決這個問題。 – 2012-02-16 11:45:14