views:

257

answers:

3

Hi,

I have created an installation package using Wix which installs a Windows service on the user's machine. Currently, the files are being installed to [%ProgramFiles%\APLICATIONNAME].

Is this a future proof way of structuring an installation folder? Should I be installing to [%ProgramFiles%\APLICATIONNAME\VERSION_NUMBER] instead?

Any recommendations would be greatly appreciated.

Thanks,

Arnie


Update:

Side-by-side installation of different versions will not be supported.

+5  A: 

Version specific folders are no good. What you need to do is make sure all subsequent installers upgrade properly over the previous versions so that different folders are not required.

You may want to do something like ProgFiles\App 1.0 using the major and minor version number if you want to allow side by side installs of different versions. But with all of this it should ultimately be up to the user where the installed files end up.

Adam Peck
Having dealt with installer h*** before, I know how tricky correct versioning can be. You've hit it right on the head!
Brian
Thanks for your feedback. I don't intend to support side-by-side installation of different versions.I guess the best options right now is to keep the current configuration.
Arnold Zokas
+2  A: 

As an additional note, if you are storing application data in the registry of the %AppData% folders then those are sensible places to use versioned folder names,

eg. %AppData%\Manufacturer\Application\1.0 and HKCU\Manufacturer\Product\1.0 or whatever.

We use this with a folder for each major release, this way if we decide to change our registry structure, rework data file formats, etc we only have to ensure compatibility between minor releases. Major releases can use a separate procedure to help the user migrate from a 2.x to 3.x release.

sascha
Thanks for your feedback. I don't use registry to store any data, but I will definitely avoid using version numbers in any paths.
Arnold Zokas
A: 

If side-by-side installation of different versions will not be supported I think [%ProgramFiles%\APLICATIONNAME] is good enough. However personally I prefer [%ProgramFiles%\COMPANYNAME\APLICATIONNAME].

Kaagle