0

我正在尝试将 NSIS 安装程序移植到 WiX。每次安装程序运行时,它都会将注册表项设置为新的 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 中有什么东西可以在安装时生成 GUID,还是我需要编写自定义事件?如果我可以避免编写一个小 dll,那将是最好的。

4

1 回答 1

0

如果您没有找到更好的解决方案,您可以将该代码单独放入 NSIS 脚本并使其成为静默安装,以便您可以从 Wix+MSI 安装程序静默运行 NSIS 脚本。

我会注意在 NSIS 代码中进行适当的错误捕获并返回/设置要返回给 Wix 的错误代码,以便可以将任何与注册表相关的故障/错误传达给 Wix 安装程序。

于 2009-12-11T00:25:22.147 回答