【发布时间】:2020-04-18 00:12:33
【问题描述】:
我正在使用一些名为 pgModeler 的应用程序,它的当前版本提供了一个基于 QT 安装程序框架的安装程序。该安装程序在 Windows 上的问题在于它仅安装 start menu entries per-user 和 registers the app itself per-user。对于像我这样使用显式管理员用户进行系统维护而不使用非管理员用户进行日常工作的人来说,这是一个问题。重要的是实际上使用了两个不同的用户名(Administrator 与 tschoening),而不是 Windows 的默认行为来限制一个用户仅使用 UAC。
在切换到 QT 安装程序框架之前,已经使用了 Inno Setup,并且有一些 distinguishing between administrative and system-wide vs. per-user installation 的概念。开关只是以管理员身份执行安装程序,其他一切都自动运行,QT 不再是这种情况。
我为 QT 找到的还有 pre-defined constants 到不同的路径,例如对于开始菜单:
UserStartMenuProgramsPath
AllUsersStartMenuProgramsPath
我还没有发现是否提供了像 Inno 这样的自动模式?像一个简单的设置告诉安装程序总是更喜欢系统范围的开始菜单和东西,实际上是安装程序能够区分的所有内容。还是开发人员需要自己构建正确的路径?就像下面的例子:
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@StartMenuDir@/pgModeler.lnk"
对比
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@AllUsersStartMenuProgramsPath@/@StartMenuDir@/pgModeler.lnk"
在后者的情况下,如何在控制面板中在每个用户和系统范围Programs and Features 之间切换?
谢谢!
【问题讨论】:
-
找到了以下,似乎我的问题的答案是没有像 Inno 这样的概念。但我仍然缺少
Programs and Features部分:stackoverflow.com/questions/24505642/… -
有些人提到了一些支持
true和false的AllUsers-setting,但在任何地方都找不到它的工作原理。 :-/ stackoverflow.com/questions/34863638/…
标签: windows qt installation qt-installer pgmodeler