According to the Windows installation rules, programs should be installed to
C:\Program Files
(64-bit program / x86-64) or C:\Program Files (x86)
(32-bit program / x86). The program is copied into a sub-sub-folder containing the vendor name and the program name.
But why doesn't Chocolatey install packages into C:\Program Files\<Vendor>\<Program>\
?
10. Apps must install to the correct folders by default
Users should have a consistent and secure experience with the default installation location of files, while maintaining the option to install an app in the location of their choice. It is also necessary to store app data in the correct location to allow several people to use the same computer without corrupting or overwriting each other's data and settings. Windows provides specific locations in the file system to store programs and software components, shared app data, and app data specific to a user10.1 Your app must be installed in the Program Files folder by default
For native 32-bit and 64-bit apps in %ProgramFiles%, and %ProgramFiles(x86)% for 32-bit apps running on x64. User data or app data must never be stored in this location because of the security permissions configured for this folder.
Source: Certification requirements for Windows desktop apps
Version: 10 (July 29, 2015)
<vendor>
-part. There isn't even really a rule where to install at all (although later versions of windows do seem to enforce some crazy stuff). The only 'rule' is that the suggestion for the default installation directory uses the environment programfiles variable (especially if one doesn't let the user choose where to install). SOME programs (like LearnKey stuff (ironically) and Asus Probe) break this rule and hardcode the path. Personally I'd be very angry if for example I couldn't install my games in E:/Games/ next to my E:/Programs/ .. – Bogard<Vendor>\<ApplicationName>
. – Ectomere%ProgramFiles%
, and%ProgramFiles(x86)%
(which is what I was commenting). – Bogard<Vendor>
is indeed in the certification requirements (thereby excluding the vast majority of (legacy) applications by just a simple line of text).. But it seems you are more interested in what happens after the programfiles environment variable in the case of Chocolatey. Might I also ask if (and if yes, then why) this matters to you? – Bogard