我想使用免註冊COM,這樣我就不必註冊我的COM組件了。但是,我希望能夠將com DLL放在不在或不在客戶端exe文件夾下的位置,例如.... \ lib中。我無法在服務器清單文件中執行此操作,因爲它不允許相對路徑或絕對路徑。免註冊COM - COM DLL相對於客戶端EXE的位置
有誰知道這是否有辦法?
更新: 我只找到相對路徑在XP上運行。但是,我可以使用Activation Context API在Windows Server 2008上使用絕對路徑,所以很酷。我現在的問題是,我的COM組件對託管數據庫驅動程序具有靜態依賴性,但目前沒有找到它。從我讀過的清單文件中,我希望我可以簡單地將另一個元素添加到指向此dll的COM無reg清單中,因爲它與COM dll位於相同的目錄中,但我無法使其工作。所以,總之,我有一個exe文件在一個目錄中,它使用Activation Context API來引用它找到並正確加載的另一個目錄(不是exe目錄的子目錄)中的COM清單/ dll。但我也有一個託管的數據庫驅動程序DLL在與COM DLL相同的目錄中,我想知道如何使用清單文件來加載它 - 如果可能的話。
只是添加到此 - 我也嘗試使用激活上下文api以及。如上所述,我希望我的客戶端加載與client.exe不在同一目錄中的COM DLL。我試圖通過設置激活上下文中的程序集目錄來指向包含清單文件和COM DLL的目錄。結果是清單文件被正確找到,但是當它試圖加載隨附的dll時,它會查找與client.exe相關的路徑,而不是其找到清單的目錄。我錯過了什麼嗎? – HammerIp 2011-02-10 10:32:18
相對路徑可以工作,即您可以將dll放在`。\ External`文件夾中,與exe相關。只需在清單中使用```。 –
wqw
2011-02-11 15:41:26