2009-12-11 77 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安装程序。