使用 Inno Setup 将自定义字符串值写入 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Write custom string value into SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall with Inno Setup
在安装过程中,我想将自定义字符串值写入自动创建的注册表项 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MyApp.2020_is1
我试图在我的 iss 脚本的 [Registry]
部分执行此操作,但它似乎被忽略了。
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}.{#MyAppVersion}_is1"; ValueData: "some tag"; Flags: uninsdeletekey; ValueType: string; ValueName: "CustomTag"
这通常是不鼓励的,还是我遗漏了一些特别的东西?
[Setup]
部分确实有 PrivilegesRequired=admin
。
可以并排安装我的应用程序的多个版本,我想让用户可以添加描述性标签,这样他们不仅可以通过版本号还可以通过标签来识别版本.
无论如何,当我在注册表中搜索以前的版本时,我试图将自定义值添加到卸载键中,而不必引用另一个键来查找自定义标签。
Uninstall
条目是作为安装的最后步骤之一创建的。所以也在 [Registry]
部分被处理之后。检查 Installation order。创建条目后,其之前的内容将被完全删除,包括您的 some tag
值。
正如@Bill_Stewart 已经评论的那样,正确的方法是使用 SetPreviousData
/GetPreviousData
.
如果您真的想使用自己的自定义代码来编写条目,则必须从 CurStepChanged(ssPostInstall)
event 中的 Pascal 脚本执行(在创建 Uninstall
条目后触发)。
如果要让用户区分安装,标签必须去AppName
or AppVerName
or UninstallDisplayName
。
如果您需要允许并行安装,则安装必须具有不同的 AppId
– 这是卸载程序密钥名称的一部分,因此不需要额外的标签。
在安装过程中,我想将自定义字符串值写入自动创建的注册表项 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MyApp.2020_is1
我试图在我的 iss 脚本的 [Registry]
部分执行此操作,但它似乎被忽略了。
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}.{#MyAppVersion}_is1"; ValueData: "some tag"; Flags: uninsdeletekey; ValueType: string; ValueName: "CustomTag"
这通常是不鼓励的,还是我遗漏了一些特别的东西?
[Setup]
部分确实有 PrivilegesRequired=admin
。
可以并排安装我的应用程序的多个版本,我想让用户可以添加描述性标签,这样他们不仅可以通过版本号还可以通过标签来识别版本.
无论如何,当我在注册表中搜索以前的版本时,我试图将自定义值添加到卸载键中,而不必引用另一个键来查找自定义标签。
Uninstall
条目是作为安装的最后步骤之一创建的。所以也在 [Registry]
部分被处理之后。检查 Installation order。创建条目后,其之前的内容将被完全删除,包括您的 some tag
值。
正如@Bill_Stewart 已经评论的那样,正确的方法是使用 SetPreviousData
/GetPreviousData
.
如果您真的想使用自己的自定义代码来编写条目,则必须从 CurStepChanged(ssPostInstall)
event 中的 Pascal 脚本执行(在创建 Uninstall
条目后触发)。
如果要让用户区分安装,标签必须去AppName
or AppVerName
or UninstallDisplayName
。
如果您需要允许并行安装,则安装必须具有不同的 AppId
– 这是卸载程序密钥名称的一部分,因此不需要额外的标签。