程序文件中的安装路径:一些问题

Installation path in ProgramFiles : some concerns

本文关键字:问题 路径 安装 文件 程序      更新时间:2023-10-16

我正在开发一款使用Qt 5 C++的Windows(XP至10及更高版本)软件。截至目前,默认安装路径为C:UsersPublicKontiki. 但是,我读到这可能不是一个好的做法,我应该将其安装在C:ProgramFilesKontiki. 这就是我打算做的。

但是,我有两个主要的担忧。

关注点 1

我的安装文件夹中的文件包括.exe、.dll和文档。 但是,它还包括用户参数(.txt文件)。用户必须能够在我的程序中借助 GUI 更改这些参数。问题是当我的软件在ProgramFiles中时,这无法完成,因为他们没有权限编写ProgramFiles。我应该做的是将.txt参数文件放在AppData中。所以我要做的是:

  1. 在安装时(使用 NSIS 安装程序),我会将.txt参数文件写入$APPDATA
  2. 在我的Qt程序中,我会使用QStandardPaths::AppDataLocation访问这些.txt参数 所有这些都表明我担心的是,我不确定NSIS安装程序$APPDATA的路径是否始终与Qt返回的路径相同。QStandardPaths::AppDataLocation.例如,也许在新版本的Windows上会有一些差异或其他东西。也许这不是一个合法的担忧,但我想验证一下。

关注点2

如果该程序安装在ProgramFiles中,我是否有可能在 UAC 上遇到一些问题(例如,如果用户不是管理员)或其他任何问题?

非常感谢您的帮助!

如果程序安装在ProgramFiles中,用户可以毫无问题地执行该程序(无论管理员状态如何)。

但是,如果应用程序必须更新任何文件(在您的情况下是.txt文件),则用户帐户中的任何目录都是一个好地方。大多数应用程序在此类情况下使用Documents文件夹。

此外ProgramFiles目录不是特定于用户的。

可能好的方法是为要放置要更新的文件的目录创建一个用户环境变量(对于任何意外情况,易于修改)。以编程方式读取 NSIS 文件和应用程序中的环境变量并使用它。

环境变量,例如:

PROJECTDIR -- C:\Users((USERID))\Documents\projectDir