6 ms·
Twenty years maintaining the WiX Toolset
- anonzzzies 3y agoFor those like me (I never used Windows) who do not know WiX; https://wixtoolset.org/ https://wixtoolset.org/.
- kome 3y agolol, from the title i was absolutely convinced that he was talking about https://www.wix.com/ https://www.wix.com/
- anonzzzies 3y agoI indeed clicked it because I thought that as well.
- superkuh 3y agoSame. I was confused that anyone would be proud of Wix. It builds the most terrible websites I've ever encountered. They literally require sequential loading of javascripts from something like 5 different domains. Here's my experience loading a wix site: First load: nothing, so I enable javascript execution for base domain. This requests scripts from a second domain which when allowed manually requires scripts from a third domain which when loaded requires scripts to execute from a fourth domain. By this time I've closed the tab.
- flemhans 3y agoThe capitalization gave it away for me
- deleted 3y ago[deleted]
- nray 3y agoWhen Microsoft launched the (let's face it, baroque) complexity that is Windows Installer (MSI), we didn't get the WiX Toolset, instead we got an expensive proprietary profiling tool for capturing before/after snapshots, and an entry-level version bundled on the Windows 2000 CD which didn't really solve anybody's problem. No suprises then that the MSI format didn't immediately take over, and Microsoft would presume all the way to Intune that their customers were deploying MSI packages when mostly we weren't. I always wondered what would have happened if the WiX Toolset had been available from the start, and I like to compare the more organic success of the Microsoft Deployment Toolkit (MDT) being more open and hackable as an example. I guess the time just wasn't right.
- cfn 3y agoI really tried to use msi back when it appeared but it wouldn't work in certain versions of Windows without installing something else before. I can't remember the details but it was self defeating.
- viraptor 3y agoNow the same thing happens with msix. Looks nice, but want to manage services through it? Only allowed on consumer editions, not on fairly recent server systems. Totally makes sense /s
- 3seashells 3y ago[dead]
- api 3y agoThis is a bit tangential, but I consider all this complexity to be a code smell. The real answer to the problem MSI, WiX, and on Linux package managers and nix are trying to solve is the wrong problem. The entire concept of installing application software “on” the system in a way that modifies the OS is deeply flawed. It’s a security nightmare and it doesn’t scale. As you try to scale it you inevitably have to build a massive baroque state management system that is brittle and terrible for developers to use. Mobile has the right idea here. Apps are containers. If it seems like an app needs to reach outside of its container this in fact is revealing a shortcoming of the OS APIs that should be addressed there. Installing an app should be a matter of dropping it on the system. Uninstalling it should be a matter of deleting it. There might still be a niche for installers in this world but they would be for drivers and OS level third party enhancements. There would not be many of these. 99% of apps do not need this level of access. Going back to the first paragraph: if you find yourself trudging through a tangled swamp of complexity with no end in sight, I personally believe that this a sign that you are either solving the wrong problem or solving it in a fundamentally wrong way. When confronted with this a good developer will solve it. A great developer will question it. A genius will make it unnecessary. The question to always be asking is: is this incidental complexity or essential complexity? Essential complexity is present in the real world problems being solved. Incidental complexity is self inflicted. I personally believe that most software complexity is incidental. It’s at least more than half.
- throwaway2990 3y agoGreat product. Hostile maintainer.
- aumerle 3y ago[flagged]
- LunicLynx 3y agoOr maybe he is just telling how it is. Have you contributed to it or tried?
- aumerle 3y agoYup I have been using it for over a decade, and had nothing but pleasant interactions with the maintainer. I am heartily sick of this culture of entitled people that think it is OK to free load on someone else's hard work and then take a public dump on them, that too while hiding behind an alias! And then there are people like you that enable such behavior instead of calling it out. Mensching, the maintainer here, has been maintaining this free and open source software for twenty years!! A gift to the world. The least he is owed is a little goddamn respect.
- throwaway2990 3y agoWhen you try to contribute to a project and the maintainer just says something isn’t a bug and won’t tell you why and blows you off. They are hostile. So while he’s built an awesome tool. He’s obviously a difficult person.
- aumerle 3y agoSays you. Hiding behind an alias at that. If you want to attack a real person in public, at least have the courage to use your real name to do it. And add a link to where he "brushed you off" without reasons so the rest of us can see for ourselves. Failing that, I am going with you wanted the project to do something, the maintainer didn't agree. That's his perogative doesn't make him hostile. He is not obligated to entertain your use cases. When you contribute to someone else's project you do so in the understanding that they get to decide whether to accept your contributions or not.
- Kwpolska 3y agoTwenty years maintaining, but the quality of the documentation doesn’t show that. Making an installer in WiX 4 with only one or two fancy things required 3-4 days’ worth of trial-and-error, and searching the WiX sources to figure things out. The docs barely tell you anything.
- viraptor 3y agoSame, but I just gave up after 2 days. I really wish there was a one-click option in VS.net to create an installer that checks/pulls the required version of runtime, installs the target exe, all its DLL dependencies, and all custom files marked for release. 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.
- kiike 3y agoI'm not a developer for Windows apps but had to use WiX to generate an installer for a Python open source project I am collaborating with. Installing one binary in a specific location? Easy. Couple hundred files distributed among multiple nested directories? That was a miserable experience and but I could manage to pull it off. I didn't use heat. The XML was hand-coded and the file listing was generated with a Python script that walked the directory tree and generated the Directory, Component and ComponentGroup entries. Apparently with Wix4, heat is deprecated, unneeded in Wix5. I couldn't even get it to install and have the executable. So confusing!
- henry_flower 3y agoheh, I recently "ported" a Linux app to Windows and wrote a simple installer using wix 5 (it was horrible) 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
- sanqui 3y ago
- issafram 3y agoI remember having to use it at an employer many many years ago. The documentation was horrible and nothing was intuitive about the XML.
- bobince 3y agoYeah it's a thin layer over MSI tables, so if you don't already know how Windows Installer works then it's not at all clear how to do many seemingly-basic installer tasks. And few people really know how Windows Installer works because that is itself obscure, poorly designed and documented. But a thin layer over MSI is actually what you want; the commercial tools that preceded WiX and tried to abstract away what Windows Installer was actually doing were much worse. Because Windows Installer is such a mess of counterintuitive design and bugs that you are going to need to debug it. WiX is to be saluted for greatly reducing the level of misery involved in making installers for Windows. But the level of misery is still very high indeed.
- RajT88 3y agoAgree. Learning windows installer is bananas because it is super unintuitive. Intentionally so in parts, because they do not want you to interact with it outside the API. Example: https://learn.microsoft.com/en-us/windows/win32/msi/msifilehash-table https://learn.microsoft.com/en-us/windows/win32/msi/msifileh... You could be forgiven for not catching on that this table is just using slightly obfuscated MD5 hashes.
- deleted 3y ago[deleted]
- tichiian 3y agoNeeds a name change. Absolute no-go in Germany, because the name means "wank".
- croes 3y agoBut a different spelling
- StrauXX 3y agoNo matter which term you use, its gonna mean something "bad" in some language. And besides, another company, also called wix (a graphical website builder), used that exact fact in Germany/Austria/Switzerland to make a big marketing campaign.
- graemep 3y agoYes, but if something has a bad (even mildly so) meaning in American English the name gets changed. This happened to the computer language known as Nimrod, for example - now Nim because Americans do not get sarcasm nor read the Bible. Then there are all the terms like "master" and "blacklist" Why not treat other languages and cultures equally?
- laeri 3y agoIt doesn't need a name change. You would write wank in a completely different way only the spelling sounds the same.
- micovec 3y agoI have to agree with others here. It's better to use Wix as a thin layer on top of Windows Installer but the documentation is very, very poor. I spent a week of trial and error to create an installer just to find out that I had several installations of my app because of some misconfigured xml document from testing. A nightmare to uninstall to say the least. I highly recommend to test your installers inside a VM or you'll screw up your system. Also good luck if you want custom behaviour from the installer. The documentation for that is far worse than it is for the standard msi installer.
- jasonjayr 3y agoI recently learned about the "Windows Sandbox" https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-overview https://learn.microsoft.com/en-us/windows/security/applicati... Perfect for testing things that might screw up a Windows system in a 'clean' environment.
- micovec 3y agoThis is very handy! Especially for installers. Thanks, I'll write it to my list of handy tools.
- Kwpolska 3y agoSandbox is great in general, but it might not work for working with something deeply integrated into Windows (I remember some installer failing because a Microsoft thing wouldn’t install). > Pristine: Every time Windows Sandbox runs, it's as clean as a brand-new installation of Windows. I can see my custom fonts in the Sandbox. Which makes me wonder, what else is not actually pristine about it?
- airstrike 3y agoLooks like https://www.firegiant.com/blog/2024/4/5/looking-back-at-twenty-years-in-the-wix-toolset/ https://www.firegiant.com/blog/2024/4/5/looking-back-at-twen... is the better link?
- GnarfGnarf 3y agoTo those who complain about the poor documentation: that's the whole point. The maintainer offers consulting services ($5,000/yr.). It is in his interest that users should need his help. It's worth it for commercial customers. It's a fair business model for an Open Source project.
- Kwpolska 3y agoTo have customers for their consulting business, they first need to convince people WiX is the way to go, and if there are no docs and developers struggle with building the most basic installer, they would probably try looking elsewhere before burning $5000. Speaking of $5000, that’s $500 more than a 3-year InstallShield subscription.
- sieabahlpark 3y ago[dead]
- hypercube33 3y agoReally the dig should be on Microsoft -- I had to hand write an xml for WiX to push out a small single exe project and if I had hair left I'd have ripped it clear out -- how is making an MSI file harder than say NSIS or innosetup? I get their toolage is for visual studio projects but I wrote this outside of that so I'm on my own.
- ptx 3y agoIf you only need the basics, you can also use GNOME's msitools[0], which use the same XML format as WiX but don't require Windows to build the MSI package. [0] https://wiki.gnome.org/msitools https://wiki.gnome.org/msitools
- sebazzz 3y agoIsn’t WiX 4 now cross-platform, the SDK at least?
- ptx 3y agoIs it? All I see about platforms in the release notes is in the context of different processor architectures. To run WiX you would presumably also need the Windows Installer libraries that are part of Windows, which I suspect are not cross-platform. Msitools uses Wine's implementation instead.