6 ms·
The MSI infrastructure already does most of that... there really shouldn’t be much need for all the other stuff. Windows isnt like Linux where programs spew fil
by voidfunc 5y ago
The MSI infrastructure already does most of that... there really shouldn’t be much need for all the other stuff. Windows isnt like Linux where programs spew files all over the FS. Programs stay pretty self-contained to their part of the registry, program files, and the user profile data directory
- easton 5y agoIf application developers actually use MSI(X) instead of Nullsoft/InstallShield/Inno/random homegrown EXE installer that spews stuff all over the FS. I've been contributing a lot to the winget repo, and well over half of the applications (including Microsoft(!) software, including Office, Visual Studio, Teams, and VSCode) do not come in a MSI. It's been a gigantic annoyance for the people at Microsoft as they are trying to figure out how to do upgrades/uninstalls without the data you'd usually get from a deb or whatever.
- alkonaut 5y agoDon't some of those help build msi packages? I thought at least InstallShield did.
- EvanAnderson 5y agoInstallShield can, but they're not particularly nice MSIs. I remember an old Symantec Antivirus MSI (2005-2006 timeframe) that used InstallShield's "ISScript" which ended up not being capable of being uninstalled in an automated manner. It was a pain. Search-engining those keywords today shows me that ISScript-related problems persist.
- EvanAnderson 5y agoAs a Windows sysadmin I pine for developers to use MSI. Having applications managed by the Windows Installer makes automated installation, removal, and repair so easy. MSI has its warts, to be sure, but "clean" MSIs (that don't rely on lots of custom actions, embed binaries that the just execute, etc) are a joy to work with. How well a software developer / "manufacturer" deals with "setup" in the Windows ecosystem has almost always been a proxy for overall software quality in my experience. When "setup" is left as an afterthought I can usually expect other corners have been cut. When I see a custom binary running an installation I start thinking "brown M&M's".
- wvenable 5y agoAs someone who dabbles in Windows desktop development, I still don't know the best way to even make an MSI. Some of the tools from Microsoft are usable but they all seem to be obsolete.
- EvanAnderson 5y agoThe WiX toolset[1] is what I use. I've never used the Visual Studio extensions for WiX. I do everything with a plain ol' text editor. [1] https://wixtoolset.org/ https://wixtoolset.org/
- for_xyz 5y agoIf you start from scratch, I'd suggest to use MSIX [0] instead. It makes auto update trivial to implement with PackageManager.UpdatePackage(url_to_your_msix)[1] or plain execute via "ms-appinstaller:?source=url_to_your_msix". It'll do diffs properly and you also get package reflection for free via WinRT apis (such as where app is installed, appdata location, app version, etc). [0] https://docs.microsoft.com/en-us/windows/msix/overview https://docs.microsoft.com/en-us/windows/msix/overview [1] https://docs.microsoft.com/en-us/uwp/api/windows.management.deployment.packagemanager.updatepackageasync?view=winrt-19041 https://docs.microsoft.com/en-us/uwp/api/windows.management....
- wvenable 5y agoAssuming I'm not building a UWP app, how do I build an MSIX. The only thing I found was the MSIX packaging tool and the description is this: "You can run your desktop application installers through this tool and obtain an MSIX package that you can install on your machine or upload to the Microsoft Store. " Gross.
- EvanAnderson 5y agoI need to look into MSIX. MSI has been handling my needs for awhile now but I hear MSIX is really nice. Thanks for the nudge to look in that direction.
- spaetzleesser 5y ago“It's been a gigantic annoyance for the people at Microsoft” Maybe they should provide better tools. Last I tried to deal with MSI I quickly went back to NSIS and got it done in a fraction of the time.
- sixothree 5y agoThe tools in Visual Studio definitely feel clunky and dated.
- EvanAnderson 5y agoI use the WiX toolset[1] to build MSI files. I can't comment on the learning curve, though. I've been using WiX for far too long to remember what learning it was like. I find MSI files and Windows Installer itself immensely valuable, so I can't imagine using anything that doesn't generate MSI files. [1] https://wixtoolset.org/ https://wixtoolset.org/
- Varriount 5y agoWhen I used WiX, I found it very... clunky? Everything in XML, lots of attributes to fill out, etc. And, at least when I was trying it out, the generated MSIs didn't appear to have any sort of GUI (or so I read. I don't believe I ever got to the point of generating an MSI). I will say though, I remember the documentation being helpful and fairly straightforward, if a tad large (but that's what you get with a tool that's supposed to solve a complex problem).
- merb 5y agomsix is truly a good format, but it has some limitations. it's hard to have external dependencies and you NEED a certificate.
- horlux 5y agoLinux programs don't normally do that, they put files in known places /bin, /etc /lib and so on
- encryptluks2 5y agoAnd the package manager knows exactly where all the files are unless they are just config files, which are generally in .config or .local/share, and they are a lot easier than to track than the Windows registry.
- TwoBit 5y agoSeems like "and so on" implies there are a bunch of places.
- ncmncm 5y agoThere are well-known places for well-known purposes. Your house has a kitchen, bathroom, bedrooms, "and so on". You don't keep your car or skilsaw in the ones listed, but there is a place for each.
- chungy 5y ago> Windows isnt like Linux where programs spew files all over the FS. Are we living in the same universe? Did you mix up the OSes?
- majkinetor 5y agoIt was mostly true tho, even nowdays... Windows tools where historically in single folder. Then came the registry Then came the AppData. Now its more or less the same as on linux.
- alkonaut 5y agoLinux does have some weirdness still where apps occasionally put files in the same directory not just under the same directory. You have the same separation in windows as in linux mostly (user data, app data, app binaries, settings, startup ...) but on windows all of those are directories per-app under the folder in question. Like %ProgramFiles\MyApp, %UserProfile%\AppData\Local\MyApp or %ProgramData%\MyApp for example.
- majkinetor 5y agoMatter of taste I guess. I always disliked the linux way and prefer clear separation of concerns.
- alkonaut 5y agoSame. Especially sharing any binaries between applications. For a single user desktop system it just seems like a backwards idea.
- merb 5y agobtw. with msix or flatpak things did change significantly. well microsoft does it a little better because production msix create a kind of sandbox appdata/storage.
- RedShift1 5y ago> Programs stay pretty self-contained to their part of the registry, program files, and the user profile data directory There is nothing about MSI that enforces this. You can make an MSI that spews files all over, no problem.
- thu2111 5y agoThat's true for legacy MSI. MSI comes in two versions now. There is also MSIX. MSIX is actually quite good. Apps run inside a semi-virtualised container, so that writes to the registry and AppData are redirected. Uninstalling the app therefore uninstalls all of it, even if the app doesn't cooperate. MSIX can also be upgraded automatically in the background by Windows itself. However, it's new, so nothing uses it.