我有一個COM庫,我想在Wix安裝期間在COM中註冊。將.dll註冊到COM時出錯
起初,我試圖使用heat
命令收集信息,但沒有收集到該.dll文件。然後,我認爲我的圖書館是錯誤的,並試圖安裝使用手動regsvr32
命令是這樣的:
regsvr32.exe /s "RouteToMyLibrary/MyLibrary.dll"
而且它沒有正確安裝......
然後,我決定使用CustomAction
,而不是安裝該.dll因爲它看起來對我來說是一個解決方案。
所以我寫了下面CustomAction
:
<CustomAction Id="RegisterCOMLibrary"
Directory"DirIdOfWhereMyComLibraryIsLocated"
ExeCommand='regsvr32.exe /s "[DirIdOfWhereMyComLibraryIsLocated]MyLibrary.dll"'></CustomAction>
<InstallExecuteSequence>
<Custom Action="RegisterCOMLibrary" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
但是,當我運行安裝程序,就啓動1722錯誤。
我運行安裝程序編寫一個log.txt
這樣的:
msiexec /i MyInstaller.msi /l*v log.txt
而且我可以看到1722的錯誤。 注:
- 的目錄路徑指向正確的地方
- 如果我從日誌exctract的
regsvr32
命令,並嘗試執行它,它REGISTER COM庫。
任何想法,我在做什麼錯了,爲什麼我不能註冊我的.dll使用自動化的CustomAction從維克斯?
注意:當我做heat file mylibrary.dll -out mylibrary.wxs
它說:
Could not harvest data from a file that was expected to be a SelfReg DLL...
菲爾,我還沒有在64位上試過你的RegSpy工具。它仍然有效嗎?它是我發現的唯一能夠正確地從EXE文件中提取COM的工具。 –
我不知道它是否仍然有效,對不起。在installsite.org上有一個更新版本,可能仍然會保留。 – PhilDW