What is the problem or limitation you are having?
MSI installers will install into C:\Program Files for All User installs, and into %APPDATA% for per-user installs. These are sensible defaults, but some users may want to customise this default.
In particular, %APPDATA% is a long path, which can cause issues if the code being installed is sensitive to long paths.
Describe the solution you'd like
Add a simple_user_install_path configuration item. Set to false by default, implying the current %APPDATA% based install path. If true, a default per-user install path based on %USER_PROFILE% will be used.
The value provided will only be a default location - the user will still have the option to customise the install path in the install location dialog.
Describe alternatives you've considered
- Provide full customisation of the user install path (e.g.,
user_install_path = "C:\some location\My App"). Potentially problematic as there's no guarantee a hard-coded location will exist, although we could allow for WiX variable expansion (so user_install_path = "[%USER_PROFILE%]/My App" would be legal)
- Provide customisation of the user install root, rather than the full path. This is effectively the same as (1), except that the default Briefcase path construction behavior around appending app name (and optionally project name) would be preserved.
- Explicitly ask for the environment variable to use as a root. Not sure if there's any real option other than
USER_PROFILE or APPDATA that would make sense.
Customising the all user location might also be worthwhile, although the underlying path length question is less of a concern there. If we need to customise all user installs, option (2) (with user_install_root and system_install_root options) might make more sense, so that the suffix applied to the root is consistent.
Additional context
The background question for this feature is "should we be supporting this in the first place?".
On the one hand, Windows best practice dictates always installing into APPDATA. If an APPDATA-based location will cause known problems due to path length, there's an argument that the problem lies with the software itself.
On the other hand, rewriting existing software will rarely be a practical option.
What is the problem or limitation you are having?
MSI installers will install into
C:\Program Filesfor All User installs, and into%APPDATA%for per-user installs. These are sensible defaults, but some users may want to customise this default.In particular,
%APPDATA%is a long path, which can cause issues if the code being installed is sensitive to long paths.Describe the solution you'd like
Add a
simple_user_install_pathconfiguration item. Set tofalseby default, implying the current%APPDATA%based install path. Iftrue, a default per-user install path based on%USER_PROFILE%will be used.The value provided will only be a default location - the user will still have the option to customise the install path in the install location dialog.
Describe alternatives you've considered
user_install_path = "C:\some location\My App"). Potentially problematic as there's no guarantee a hard-coded location will exist, although we could allow for WiX variable expansion (souser_install_path = "[%USER_PROFILE%]/My App"would be legal)USER_PROFILEorAPPDATAthat would make sense.Customising the all user location might also be worthwhile, although the underlying path length question is less of a concern there. If we need to customise all user installs, option (2) (with
user_install_rootandsystem_install_rootoptions) might make more sense, so that the suffix applied to the root is consistent.Additional context
The background question for this feature is "should we be supporting this in the first place?".
On the one hand, Windows best practice dictates always installing into
APPDATA. If anAPPDATA-based location will cause known problems due to path length, there's an argument that the problem lies with the software itself.On the other hand, rewriting existing software will rarely be a practical option.