我创建了一个小型 Windows 应用程序,并使用 NSIS 为其构建设置,但我找不到将可执行文件放在哪里以符合新的 Windows 安全模型。
传统上,我们将程序文件放在“c:\program files”中。随着每个 Windows 版本的安全模型变得越来越混乱,一些用户的帐户受到限制,我不确定将这些文件安装到程序文件中是否适合这些用户。
我可以在哪里安装我的程序文件来满足这些较低权限用户的需求?
哦,还有我想以避免 ClickOnce。
答案1
如果你看一下“Windows 7 客户端软件徽标计划”,你就会找到答案:
默认安装到正确的文件夹
合理性:用户应该对文件的默认安装位置有一致且安全的体验,同时保留将应用程序安装到他们选择的位置的选项。还需要将应用程序数据存储在正确的位置,以允许多个人使用同一台计算机而不会破坏或覆盖彼此的数据和设置。
标准:Windows 在文件系统中提供了特定位置来存储程序和软件组件、共享应用程序数据以及特定于用户的应用程序数据:
- 默认情况下,应用程序应安装到 Program Files(对于本机 32 位和 64 位应用程序,安装到 %ProgramFiles%,对于在 x64 上运行的 32 位应用程序,安装到 %ProgramFiles(x86)%)文件夹。由于此文件夹配置了安全权限,因此绝不能将用户数据或应用程序数据存储在此位置
- 计算机上所有必须在用户之间共享的应用程序数据都应存储在 ProgramData 中
- 所有特定用户独有且不能与计算机其他用户共享的应用程序数据都必须存储在 Users\\AppData 中
- 切勿直接写入“Windows”目录和/或子目录。使用正确的方法安装文件,例如字体或驱动程序
- 在“按计算机”安装中,必须在首次运行时写入用户数据,而不是在安装期间写入。这是因为在安装时没有正确的用户位置来存储数据。应用程序在安装后尝试在计算机级别修改默认关联行为将失败。相反,必须在每个用户级别声明默认值,以防止多个用户覆盖彼此的默认值。