关于 qt:QtIFW 总是创建注册表项

QtIFW Always create registry entry

我目前正在使用 Qt-Installer-Framework 为我的应用程序创建设置。现在一切正常,除了一件事:

如果我将它安装到除 C:\\Program Files\\MyApp 之外的任何位置,安装程序将不会为 Programs and Features 创建注册表项!

有没有办法告诉安装程序总是这样做?

编辑:
在尝试了各种不同的组合之后,我现在知道问题出在哪里了:

如果我尝试仅以当前用户身份安装(将 AllUsers 变量设置为 false),它将始终有效并在 HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{GUID} 中创建一个条目。

但是,如果我为所有用户安装,它将尝试在 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{GUID} 中创建一个密钥。这只有在安装程序必须在安装期间提升它的操作时才有效(因为我选择了一个需要管理员权限的目录)。

所以,错误是:安装程序不会提升自己来创建"全局"注册表项,因此无法创建它。关于如何修复它的任何想法?


这里有这个问题的答案的链接。

Add the following line to your component's package xml file:

@true@

And use this line in your script file:

@component.addElevatedOperation("Execute","someCommand");@

instead of

@component.addOperation("Execute","someCommand");@