> To be written. To volunteer, leave a comment at the related issue on GitHub.
If you start with Visual Studio, create a project with their (free) plugin, and configure Heat [1], you might get a working installer.
orca.exe from one of the older Win SDKs can really help with your understanding of the MSI format, which helps when building for WiX.
It's what 99.9% of apps need, so why is there no "do the defaults" path? You even need to pass things through the Heat generator to get multiple resulting files listed automatically. This is not an exclusive Wix issue though - no project offers that as far as I can tell and it really sucks.
Apparently with Wix4, heat is deprecated, unneeded in Wix5. I couldn't even get it to install and have the executable. So confusing!
to even obtain wix v5: first, using scoop, I installed "dotnet-sdk"; second, using the "dotnet" command, I got the wix.exe executable via
> dotnet tool install --prerelease --global wix
In addition to using more sensible and consistent syntax, WixSharp also provides sensible defaults that just work, such as always using "major upgrades" so that you don't have to worry about MSI trying to be clever and sometimes (but sometimes not!) only partially upgrading the app.
Packaging can be hard on any platform but Microsoft really outdid itsself with MSI. If you already have a finished product and just need to package it then NSIS or Inno were much simpler to pick up.
Many products are released as MSI files because that's what enterprise deployment tooling supported, but inside is a setup executable, which defeats the entire transactional rollback design of the thing.
And Wix is just installation on one out of 5-6 platforms. Native development is so convoluted and riddled with complexity. Linux though is no exception, since this it’s a distro issue. MacOS is generally much better, with fewer moving pieces – most of the overhead is from notarizing and signing…