2009-12-11 75 views
0

我試圖端口一個NSIS安裝程序的WiX。安裝程序運行時,它每次設置一個註冊表項,以一個新的GUID值,讓我的應用程序運行時,它可以看到,如果它是一個安裝後第一次運行。首次運行時,應用程序將另一個註冊表項設置爲安裝程序的GUID值。只要兩個鍵匹配,我知道安裝程序尚未運行。獲取維克斯寫一個新的GUID到註冊表後各安裝

這裏的NSIS代碼:

#Write InstallGUID 
Call CreateGUID 
Pop $0 
WriteRegStr HKLM "${REGKEY}" InstallGUID $0 

Function CreateGUID 
    System::Call 'ole32::CoCreateGuid(g .s)' 
FunctionEnd 

我已經有了一個相當完整的WiX的安裝程序準備在這一點,但我無法弄清楚如何複製這一功能。有沒有什麼在WiX的安裝時生成GUIDs,還是我需要編寫一個自定義事件?如果我能避免寫一個最好的小dll。

回答

0

如果你沒有找到一個更好的解決辦法,你可以把這些代碼爲NSIS腳本本身並使其靜默安裝,這樣就可以靜默運行從維克斯+ MSI安裝程序的NSIS腳本。

我會留意在NSIS代碼中執行適當的錯誤捕獲,並將返回/設置錯誤代碼返回給Wix,以便將任何註冊表相關的故障/錯誤傳送給Wix安裝程序。