Skip to content

Allow customisation of default install locations for MSIs #2861

@freakboy3742

Description

@freakboy3742

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

  1. 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)
  2. 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.
  3. 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.

Metadata

Metadata

Assignees

Labels

enhancementNew features, or improvements to existing features.
No fields configured for issues without a type.

Projects

Status
Needs design

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions