指导说你不应该写入Program Files区域在哪里?

很多关于SO的问题都说“Windows开发人员指南”或“Windowsdevise指南”中说,不应该将临时或程序数据写入Program Files区域,但据我所知,其中没有一个实际链接到一个文档那么多说。 searchMSDN已经让我没有结果。 Windows将使该区域成为只读区域,因此可以由操作系统强制执行,但这并不意味着开发人员不会尝试写入该区域(例如,向前移植较旧的,XP和更早版本的程序时)。

我意识到,在Windows开发中提出这个问题似乎很奇怪(因为正如下面的一位评论者所指出的那样,OS已经被执行了十多年了),但是有时候这样说的文档有时是为了满足人们的需要。

考虑到这一点,Microsoft是否发布了一个文档,声明我们不应该将应用程序数据写入Program Files区域,如果是这样,它在哪里?

Solutions Collecting From Web of "指导说你不应该写入Program Files区域在哪里?"

Windows 7客户端软件徽标计划的技术要求

默认安装到正确的文件夹

用户应该对文件的默认安装位置具有一致和安全的经验,同时保持选择将应用程序安装到他们选择的位置。 还有必要将应用程序数据存储在正确的位置,以允许多个人使用同一台计算机,而不会破坏或覆盖彼此的数据和设置。


Windows提供文件系统中的特定位置来存储程序和软件组件,共享应用程序数据以及特定于用户的应用程序数据:

  • 应用程序应默认安装到Program Files文件夹中。 用户数据或应用程序数据不得存储在此位置,因为为此文件夹配置了安全权限强调已添加
  • 所有必须在计算机上的用户之间共享的应用程序数据应存储在ProgramData中
  • 所有专用于特定用户且不与计算机的其他用户共享的应用程序数据必须存储在Users \ <用户名> \ AppData中
  • 切勿直接写入“Windows”目录和/或子目录。 使用正确的方法来安装文件,如字体或驱动程序
  • 在“每台机器”安装中,用户数据必须在第一次运行时写入,而不是在安装期间。 这是因为在安装时没有正确的用户位置来存储数据。 尝试通过应用程序在安装后修改计算机级别的默认关联行为将不成功。 相反,必须在每个用户级别声明默认值,这样可以防止多个用户覆盖对方的默认值。

而且我相当确信,每个NT系列的Windows版本都可以回到Windows NT 4甚至更早的版本。


另见这个问题 。


编辑:在这个职位的原始链接到Windows 7徽标程序不存在。 这里您可以找到Windows桌面应用程序的认证要求的当前链接。 请参阅第10节, 应用程序默认情况下必须安装到正确的文件夹

在更高版本的Windows(Vista,7以及服务器版本)中,访问权限仅限于“特殊文件夹”,包括“程序文件”。 即使你的程序被提升到有足够的权限来写入这个文件夹,这仍然是一个坏主意。

我不知道任何指出这一点,但有一个特殊的文件夹列表,他们是什么意思。 几乎所有类型的数据都有一个特殊的文件夹,我可以这样做,意味着不需要使用程序文件文件夹。 特殊文件夹列表