The problem is, most of the answers I've found are from 10 years ago, so I would like to know more modern solutions.
Additionally, I read this article by the creator of SumatraPDF who recommends just writing your own installer from scratch. https://blog.kowalczyk.info/article/8nqb/Writing-a-custom-installer-for-Windows-software.html
In theory, I agree with this article. The only experience with writing installers that I have so far is NSIS, and I personally dislike it. I'm not a fan of the assembly-like syntax and I dislike having to use plugins just to do basic things such as imperative programming (LogicLib.nsh). Additionally it has quirks and limitations such as not being able to display Powershell output in the status window and one time I had a bug where I forgot to put two spaces instead of one (I don't remember exactly what it was, this was a while back).
Is there anything I'm missing from just writing my own installer using something like C# and WPF? I feel like using a real programming language would not only make development much faster but I would have a more robust codebase. An installer just needs to decompress a bunch of files, move them to the appropriate directories, and then set some registry and environment variables, right? All of that seems pretty simple to do in most programming lanaguages, but I would like to hear some thoughts of more experienced engineers.
Thank you.
Wix is IMHO the best option, if you want to create Windows-native experience. MSI installer format is the best one, especially in enterprise deployment, including AD networks. Additionally, signing the installers gives you additional value.