2012-10-22 121 views
1

我剛剛完成了我的瀏覽器幫助對象,我正在爲它編寫一個安裝程序。 到目前爲止,我設法得到一個MSI將.dll複製到所需的位置,但我不知道如何手動註冊對象。 我需要設置哪些密鑰,以便Internet Explorer自動加載BHO?用Wix安裝BHO

+0

如果你完成了BHO,你測試了它,對嗎?您需要將相同的條目添加到您添加的測試註冊表中。 –

+1

但testint我用「regsvr32.exe /我BHO.dll」來測試它,我不知道,我需要在註冊表中設置哪些鍵。 – Horstinator

回答

1

當使用regsrv32註冊該DLL時,它會在您的DLL中調用DllRegisterServer來執行註冊。因此,您必須將此函數(DllRegisterServer)寫入註冊表的所有密鑰和值添加到您的MSI,以便MSI在安裝期間爲您寫入它們。

要取消註冊DLL,請使用regsrv32 /u,在這種情況下,將在DLL中調用DllUnregisterServer。通常它只是刪除在DllRegisterServer中添加的條目。

Windows Installer在卸載時會自動刪除所有添加的註冊表項。只需檢查DllUnregisterServer不會執行任何其他操作。如果有,請在WiX中實施。

+0

感謝您的幫助,我在registring之前和之後創建了註冊表快照,以便我可以輕鬆找出需要設置的密鑰。 – Horstinator

+0

@Horstinator我會認爲閱讀「DllRegisterServer」和「DllUnregisterServer」的源代碼比獲取註冊表快照然後比較它們要容易得多。 –