After a bit of rest and relaxation, Paraffin, my tool to make managing your Windows Installer XML (WiX) fragments easier makes a surprise appearance back on my blog. If you’re not familiar with Paraffin search this blog for numerous entries. Grab the latest version here. The relevant changes are as follows.
A special thanks to Tim Herby for the ideas to add the –Include and the –Win64Vars switch.
Numerous people have emailed me asking about the license for Paraffin. I really don’t care what you do with the Paraffin source code. All I ask is that if you find a bug please email me (john @ this company’s web site). Also, if you add custom features on your own version please email me your code because if the idea you have is suitable to others, I’d love to get it into the main version to benefit others. If your company’s legal beagles have a problem with you using Paraffin, please have them email me and I’ll sign their paperwork.
Also several people have asked me to put Paraffin on SourceForge or CodePlex so they can contribute. Well, Paraffin is a tiny niche utility with three source files and it’s kind of overkill to go through the hassle of setting up a whole project on one of those systems. If you want to participate, the code is in the download so please start hacking away and I’ll be the coordinator. Being that there’s realistically like two other people in the world that will ever actually add something to Paraffin I think we can coordinate the project. <grin!> If there are five or six people that start going crazy adding cool features, I’ll create a CodePlex project at that point.
Ben Spiller had an excellent feature request where you could determine if Paraffin run with the –update switch actually made any changes to the output file. Unfortunately, to get that feature working, I’m going to have to start tracking more information about the files in a directory and I just didn’t have time to add that diffing type feature in. It’s on my list and I hope to get to it soon.
Finally, countless people have asked me to change the –update switch to overwrite the original .WXS file. That’s one feature I won’t do because in Windows Installer the Component Rules are sacred. If you screw up those Component Rules, you’ve completely destroyed your installer and possibly left the user’s machine in a very bad state. I can just see a situation where I enable that feature, the original developer leaves, and some VP is in the hot seat for a broken installer. They look at the installer fragments see my name and decide to sue me. (Stranger things have happened.) If you want the feature of automatically updating the output .WXS file, the best plan is to go with Major Upgrades for your installer and run Paraffin with the create file options during the build. That is the only safe and approved means for avoiding Component Rules problems and automating your fragment creation.
As always let me know if you have any feature requests or find any bugs. Thank you all very much for using Paraffin!
Cloud management is difficult to do manually, especially if you work with multiple cloud…
Azure’s scalable infrastructure is often cited as one of the primary reasons why it's the…
https://www.youtube.com/watch?v=wDzCN0d8SeA Watch our "Unlocking the Power of AI in your Software Development Life Cycle (SDLC)"…
FinOps is a strategic approach to managing cloud costs. It combines financial management best practices…
Using Kubernetes with Azure combines the power of Kubernetes container orchestration and the cloud capabilities…
In the intricate landscape of modern business, compliance is both a cornerstone of operational integrity…
View Comments
John,
The Win64 attribute is rarely necessary. See http://www.joyofsetup.com/2010/05/14/working-hard-or-hardly-working/.
Bob,
Doh! Thanks. I promise to read the WiX docs a little more carefully next time. Appreciate the comment and I most appreciate WiX!
- John Robbins
John,
If it were well documented, I wouldn't have needed to write that post. :)
Hi,
I want to be able to uninstall obsolete components during minor upgrades.
For this I would like to have an additional option, which does not remove missing/deleted files from the .Paraffin file. Instead it should generate the code according to http://geekswithblogs.net/Vagmi.Mudumbai/archive/2006/06/11/81426.aspx.
Paraffin should set component to transitive and use a false condition. If a file does not exist it should use a 0-byte dummy file.
paraffin -update -obsoletes xxx.wxs
How about also looking for .obsoletes files, listing additional obsolete (existing) files.
How difficult is this?
Best Regards,
Mike
Mike,
Numerous people have asked for this feature, but as I am not a Windows Installer expert, I have no idea what the output WiX component should look like. If someone would send me a valid working WiX sample that does an install and patch that uninstalls, I would be happy to look at adding this to Paraffin.
You can somewhat achieve the same affect today by using .ParaffinMold files. If I find a file in the current directory with a .ParaffinMold extension I add that item directly into the output.
- John Robbins