Installation 为什么';不要用巧克力糖将软件包安装到'C:\Program Files\`?
根据Windows安装规则,程序应安装到Installation 为什么';不要用巧克力糖将软件包安装到'C:\Program Files\`?,installation,directory,package,chocolatey,Installation,Directory,Package,Chocolatey,根据Windows安装规则,程序应安装到 C:\Program Files(64位程序/x86-64)或C:\Program Files(x86)(32位程序/x86)。程序被复制到包含供应商名称和程序名称的子文件夹中 但是为什么Chocolate不将软件包安装到C:\ProgramFiles\\\ 10。默认情况下,应用程序必须安装到正确的文件夹中 用户应该对文件的默认安装位置具有一致且安全的体验,同时保留在其选择的位置安装应用程序的选项。还需要将应用程序数据存储在正确的位置,以允许多人使用同
C:\Program Files
(64位程序/x86-64)或C:\Program Files(x86)
(32位程序/x86)。程序被复制到包含供应商名称和程序名称的子文件夹中
但是为什么Chocolate不将软件包安装到C:\ProgramFiles\\\
10。默认情况下,应用程序必须安装到正确的文件夹中用户应该对文件的默认安装位置具有一致且安全的体验,同时保留在其选择的位置安装应用程序的选项。还需要将应用程序数据存储在正确的位置,以允许多人使用同一台计算机,而不会损坏或覆盖彼此的数据和设置。Windows在文件系统中提供特定位置,用于存储程序和软件组件、共享应用程序数据以及特定于用户的应用程序数据 10.1默认情况下,您的应用程序必须安装在Program Files文件夹中
适用于%ProgramFiles%中的本机32位和64位应用程序,以及适用于在x64上运行的32位应用程序的%ProgramFiles(x86)%。由于为此文件夹配置了安全权限,因此用户数据或应用程序数据决不能存储在此位置 来源:
版本:10(2015年7月29日)这取决于您的巧克力版本、设置和包装本身 首先,请参见工具与应用程序以及巧克力的区别( 在 底部) 如果软件包不使用本机安装程序(工具),则取决于 如果包作者使用了bin_root概念,则 未来的版本 例如,系统内部将立即转到
c:/SysInternals
,除非
您有一个已定义的$env:chocolate\u bin\u root
变量。中的概念
代码现在也会改变,这要求它是一个
系统驱动器的子文件夹,我看不到我们正在开发最终版本
具有该限制的特征
如果软件包还没有这个概念,你可以问
包作者合并它
如果软件包使用本机安装程序(应用程序),则可以使用
installArgs
将参数传递给本机安装程序
()及
告诉它安装应用程序的目录。这确实需要
您需要知道需要传递给本机安装程序的内容。如果你愿意
您的应用程序位于自定义目录中,假设
您已经是高级用户,因此希望您知道
如果您正在进行静默安装,则传递安装程序的内容
略作转述:
而且
注意:从0.9.8.24开始,Chocolate的默认安装位置为
C:\ProgramData\Chocolate
这减少了局部安装巧克力的攻击面
并限制可以对目录进行更改的用户
资料来源:
从个人经验来看,我可以证明,这一概念是一道极好的防线(如果配置、使用和理解得当)
附言:正如您已经在回答中添加的,从技术上讲,要求是
%ProgramFiles%
和%ProgramFiles(x86)%
环境变量(如适用)。例如,
%ProgramFiles(x86)%
也可以指向P:\Software\Programs\x86\
(而不是C:\ProgramFiles(x86)\
)。显然有很多遗留软件(现在(重新)打包)从未在路径名中使用过
部分
希望这有帮助 对于
-零件,没有刻在石头上的规则。甚至根本就没有一条安装的规则(尽管windows的更高版本似乎强制执行了一些疯狂的东西)。唯一的“规则”是默认安装目录的建议使用environment programfiles变量(特别是在不允许用户选择安装位置的情况下)。有些程序(讽刺的是,像LearnKey stuff和Asus Probe)打破了这一规则,并对路径进行了硬编码。就我个人而言,如果我不能在E:/games/中安装我的游戏,我会非常生气。在E:/Programs/。@GitaarLAB实际上,有微软编写的认证要求,比如说默认情况下在哪里安装应用程序。这并不意味着,您可以更改安装程序GUI中的目录,或者通过参数选择另一个硬盘。很抱歉,我找不到Windows 8.x之前版本的“桌面应用”的文档版本。我确信\
有一个规则。对你的问题有很好的补充!(您可能希望添加Chocolate软件包为不知道该程序的人使用的目录结构)。但我还是坚持我的评论(不是回答):我的电脑上安装的90%(超过500个)的程序没有供应商部分(我通常不会弄乱那个部分;我只是验证它不是一个简单的硬编码不符合规范的安装程序(实际上很少见))。您在问题中添加的有关认证要求的引号中的关键词是“默认”和%ProgramFiles%
,以及%ProgramFiles(x86)%
(这就是我所评论的)。但如果认证要求中确实包含
的书面“要求”,我不会感到惊讶(因此,通过简单的一行文字排除了绝大多数(遗留)应用程序)……但您似乎更感兴趣的是,在巧克力的情况下,programfiles环境变量之后会发生什么。我还想问一下,这是否(如果是,那么为什么)对您很重要?“包”与“应用程序”的区别-我认为它已经被突出显示了,但是软件包不一定是本机安装的应用程序,它们只是引导那些应用程序。本机安装的应用程序