【发布时间】:2015-12-12 05:27:31
【问题描述】:
根据 Windows 安装规则,程序应安装到
C:\Program Files(64 位程序/x86-64)或C:\Program Files (x86)(32 位程序/x86)。程序被复制到包含供应商名称和程序名称的子文件夹中。
但为什么 Chocolatey 不将软件包安装到 C:\Program Files\<Vendor>\<Program>\ 中?
10.默认情况下,应用必须安装到正确的文件夹中
用户应该对文件的默认安装位置有一致且安全的体验,同时保留在他们选择的位置安装应用程序的选项。还需要将应用程序数据存储在正确的位置,以允许多人使用同一台计算机,而不会损坏或覆盖彼此的数据和设置。 Windows 在文件系统中提供特定位置来存储程序和软件组件、共享应用数据以及特定于用户的应用数据10.1 您的应用程序必须默认安装在 Program Files 文件夹中
对于 %ProgramFiles% 中的本机 32 位和 64 位应用程序,对于在 x64 上运行的 32 位应用程序,%ProgramFiles(x86)%。由于为此文件夹配置了安全权限,用户数据或应用数据绝不能存储在此位置。
来源:Certification requirements for Windows desktop apps
版本:10(2015 年 7 月 29 日)
【问题讨论】:
-
<vendor>部分没有刻板的规则。甚至根本没有真正的安装规则(尽管更高版本的 Windows 似乎确实执行了一些疯狂的事情)。唯一的“规则”是默认安装目录的建议使用环境程序文件变量(特别是如果不让用户选择安装位置)。 一些 程序(例如 LearnKey 的东西(讽刺地)和 Asus Probe)打破了这个规则并硬编码了路径。就我个人而言,如果我无法在 E:/Programs/ 旁边的 E:/Games/ 中安装我的游戏.. -
@GitaarLAB 实际上,有微软编写的认证要求,例如默认安装应用程序的位置。这并不意味着您可以更改安装程序 GUI 中的目录或通过参数选择另一个硬盘。抱歉,我找不到 Windows 8.x 之前的“桌面应用程序”的文档版本。我确定
<Vendor>\<ApplicationName>有一个规则。 -
很好地补充了您的问题! (您可能想要添加 Chocolatey 包为不了解该程序的人使用的目录结构)。但我坚持我的评论(不回答):我的电脑上安装的(超过 500 个)程序中约有 90% 没有供应商部分(而且我通常不会搞砸与那部分;我只是验证它不是一个天真的硬编码不符合规范的安装程序(实际上很少见))。关于您添加到问题中的认证要求的引号中的关键字是“默认”和
%ProgramFiles%和%ProgramFiles(x86)%(这是我评论的内容)。 -
但是如果
<Vendor>的书面“要求”确实在认证要求中,我不会感到惊讶(因此仅通过简单的一行文本就排除了绝大多数(旧版)应用程序).. 但您似乎对 Chocolatey 的 programfiles 环境变量之后发生的事情更感兴趣。我还可以问一下(如果是,那么为什么)这对您来说很重要吗? -
“包”与“应用程序”的区别 - 我认为它已经被突出显示,但包不一定是本机安装的应用程序,它们只是指导那些。本地安装的应用程序可能会做正确的事情并最终出现在 Program Files 中。
标签: installation directory package chocolatey