We have an application that is being provided and installed by a third party company. They are charging market rate 'consultancy' fee to do this.

They installed the majority of the folders in the root of the C drive, to my shock.

Is it OK to install them to the root of the C drive? Can this method of installation cause problems? Or should applications be installed to Program Files instead?

  • I wouldn't ask this question on Stack Overflow (or indeed Programmers). It would probably get down-voted and closed quite quickly on Stack Overflow. – ChrisF Aug 22 '14 at 13:27
  • 7
    You're shocked by high priced "enterprise" software being of exceptionally low quality? Don't be. It's not uncommon. – Michael Hampton Aug 22 '14 at 13:27
  • 2
    I think the reason has to do with keeping the length of the PATH variable as short as possible. You can use the %PROGRAMFILES% variable in your path should you need to extend it, rather than adding the full path of where ever you installed your application to. – ChrisF Aug 22 '14 at 13:35
  • @MichaelHampton indeed I am shocked, there 'installation engineers' are even worse! – Cold T Aug 22 '14 at 19:27
  • 2
    One big issue here with Program Files being best practice is that creating directories in C drive doesn't require admin privileges and Program Files does. When trying to write software that doesn't need admin, C could be preferable (though using AppData would be the true solution in that case, for most situations). Just pointing out one potential difference. I think everything else said here stands. – Nick Aug 27 '14 at 19:33

While not an official source, Raymond Chen at The Old New Thing has discussed this.

Specifically, the above-linked blog post states:

Some of Microsoft's software certification programs (such as the Windows Logo) require that applications set their default installation location to the Program Files directory.
Program Files was introduced in an attempt to bring order to chaos. Think of it as painting lines in a parking garage.

Naturally, compliance with those software certification programs' terms would only apply if you intended to apply for (or already have applied, and received certification under) those particular software certification programs. And more to the point in this case, it's about the default installation path, nothing more.

  • 1
    OTOS if I buy software and it is written by people not smart enough to realize that there are standards and being as stupid as going to C directly - well, that is where "as best as common practice can be demanded by law unless agreed upon otherwise" and "gross neglect to read the documentation" come into play. – TomTom Aug 23 '14 at 19:34

There are certain advantages to not installing in %programfiles%. One is to safeguard the program from being used as a trampoline for malware (for more details see, for example http://foundstone-dire-detect-insecurely-regist.software.informer.com/1.0/ or google for more "Foundstone DIRE").

Another advantage would be to install w/o requiring elevated privileges. This may be important, again, if a program is compromised, it won't have the access rights to compromise something else.

In Linux world, it is common practice to install third-party and system's software packages separately. For instance, while usual software packages go into /usr/bin, third-party typically goes into /usr/local/bin or /usr/share/bin if it needs to be shared by multiple users, or into $HOME/bin if it is supposed to be used by this specific user. Hearing how it's a consultancy firm that installs these programs on your PC, they probably have some (not to say contrived) user policies which make it necessary or at least more convenient to not use %programfiles%.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.