好吧,我有2個問題,我在這裏泡菜,已經有一個星期了。註冊一個引用多個dll的dll
重要 - 沒有應用程序將構建或運行它。這將是一個單一的客戶端端DLL(引用其他幾個DLL),將被放置在特定的文件夾,我將需要註冊此DLL使用regasm或其他東西。
概述:
所以我有一個C#COM ScannerController.dll寫。 ScannerController引用了五個第三方DLL,它們已經被安裝並註冊到整個c:\ Program Features \ etc ....文件夾中(這些位置將根據它們所在的軟件版本而變化,但dll將是相同。)
這一個DLL(integration.ActiveX(它是一個程序集))有一個名爲InstalledPath的方法。 InstalledPath返回執行程序集的實際位置。當我完成dll時,我通過IExplorer運行它,它返回了正確的「../program features/....」。
然後,爲了在另一臺計算機上設置它,我取消了註冊,然後運行了一些regasms並在「Scanner/bin/debug/integration.ActiveX」註冊了dll(該oleview說它找不到它的依賴關係)所以我沒有註冊它,在vs2012中構建它,現在當我從IExplorer運行它時,InstalledPath是「../bin/debug/」。我創建了一個新項目,構建它自動註冊它,並從iexplorer運行它,InstalledPath是「..Scanner-fake/bin/debug /」。我已經在cmd註銷了一百萬次,無論我做什麼,它現在總是指向註冊的ScannerController的調試文件夾。
問題1:
如何在世界上註冊我的COM ScannerController.dll,使用類似regasm,並且還指向五個第三方的DLL ScannerController引用?
問題2:
我試着將它固定到Integration.dll不會在我的電腦上的本地路徑存在(因爲我構建它),所以我設定的本地副本爲false。當我構建它時,在oleview中查看它,它說它的依賴不能被加載或找到。我該如何設置項目,以便copy = local = false,引用可以找到其他第三方dll?
對不起長時間的問題,但非常感謝你的閱讀和嘗試幫助我。我爲此搜尋了高低,現在我只是精神疲憊。
Integration.Activex.dll,ScannerController.dll(建於VS2012)加5的第三方(COM? )dll已經安裝並在目標計算機上註冊。這是你有什麼? –
對不起,Integration.ActiveX.dll是第三方DLL(所有第三方DLL已經在我的機器上註冊)之一。第三方DLL中有4個是Type:Assembly,1是Type:ActiveX。 ScannerControll.dll是一個COM對象,它是在我的機器上本地構建的。 – Godrules500