Windows Installer XML (WiX) toolset has released as Open Source on

The Windows Installer Xml (WiX) toolset (pronounced “wicks toolset”) appears to have finished propagating around the CVS servers, so I can finally start writing this blog entry.  As promised in my blog here, here, here, here, and here the WiX toolset and all of its source code has been released so that you can build Windows Installer databases (MSI and MSM files) the same way most groups inside Microsoft do.  However, a funny thing happened on the way to the forum.  WiX became the first project from Microsoft to be released under an OSS approved license, namely the Common Public License.

[read more]

Comments (181)

  1. Frans Bouma says:

    Cool ! 🙂

    This opens oppertunities for a lot of side-tools: plugin which exports an .MSI project to wix xml, a gui for the wix xml files incl. compile/link wrapper… 🙂

    I’m curious how to specify additional steps etc. in wix, but I’m sure you’ll address all these in a later blog.

    One suggestion: because accessing CVS is pretty horrible sometimes, could you please also upload a .zip with solely the sourcecode? Thanks.

  2. michael says:

    There has to be a catch though?

  3. Lonnie McCullough says:

    Great stuff!! Thanks for realeasing these tools. I think a lot of developers hate tools like InstallSheild because they are just so impenetrable. This toolset will go a long way towards demystifying MSI (along with your blog of course). I’ve already created an MSI for a little side project that I’m working on because I can understand XML and command line tools. Gui tools like IS are just an exercise in pain for me (and too expensive for the independent developer).

  4. BTW, Rob, is it good idea to include private RSA key (wix_sf.snk) in public source code?

  5. Peder says:

    Since it’s Open Source I guess SCO will claim they own it, and you have to purchase a licens from them for every program you install.

  6. James Geurts says:

    Great… now I have to write another converter utility to get this xml to work with NAnt’s msi/msm task format… 🙂 Anyway, this is a good thing. Thanks for releasing it…

  7. Vincent says:

    Way to go guys !!!

  8. michael,

    There is no catch. Of course, you will want to read through the licensing agreement, but it is just the Common Public License (no modifications).

  9. Thank you very much for releasing this! I’m mainly developing with MinGW, now I can build MSI packages for my projects.

    Just downloaded the package, the server seemed to be really busy (1.0kb from ibiblio where I usually get ~90kb…).

    You should release a ZIP package with the source code, too, as many people are unfamiliar with CVS.

    It’s good to see Microsoft step into the Open Source world btw. 😉

  10. Dave says:

    This seems to be only a partial source code release.

    The CVS repository contains a bunch of DLLs in the bin directory that are required to run the program, but for which no source is provided.

    AFAICT, this is in violation of SourceForge use policies.

  11. Wow.. not full source? The /. zelots are going to go crazy (wait, they already are).

  12. David says:

    Congratulations!!! This is SUPER cool!

    Now, it would be extremly fantastic if you could sign up the msbuild and vstudio guys on this 🙂

    The installer tool should really emit files in your format from now on, the whole package should become part of the .Net Framework SDK and msbuild should have support for it by default. THAT would be ideal 🙂

    But, this is a great step!!!

  13. Lonnie McCullough says:


    The full source is included but not in the .zip file. You’ll have to use your CVS kung-fu skillz to get the source, but its there.

  14. Actually, Dave is correct. Due to a late night coding mistake, the C++ source code was not uploaded into CVS with the C# source code. I have removed the binary download temporarily until the C++ source code is available and there is source code for all binaries.

    I apologize for the trouble.

  15. Dave says:

    Lonnie McCullough: You misunderstand. Some of the source is in the CVS repository, but a significant portion is missing.

  16. Dave says:

    Rob Mensching: Thank you, I look forward to full release.

  17. Cagatay Kavukcuoglu says:

    I’ve browsed the CVS repository both using a CVS client and ViewCVS on SourceForge, and there is no source for the DLL’s. Is that source released, or is this just a (accidental?) partial release?

  18. Jimmy says:

    Wow, I’m glad to see this, I wonder if Microsoft is starting to understand that as a monopoly they are morally obligated to cooperate with the industry instead of trying to crush them. The timing is great also just as Ballmer and McNealy do their buddy thing for the press. I understand the reasons why MS products will never be GPL or full open source, but I would like to see MS progress to the point of SUN, Apple or IBM as blending both worlds and becomming more of a player in the community rather than breaking most standards. Cooperation is the only way technology will progress for everyone. MS wants to make life easier for the End User, apart of that is the ability to transparently use its products anywere, everywere and on anything.

  19. Cagatay Kavukcuoglu says:

    Oops, clarifying comments added while I was writing the first message. I’m looking forward to the full release.

  20. akeep says:

    Cool man… So this is the project you were trying to get out the door when last we talked… congrats!

  21. Lonnie McCullough says:

    Ahhh you are correct. I had d/l’d the source but hadn’t seen that there was anything missing. Doh! I guess I was too busy playing with the binary release to notice.

  22. Tim Johnson says:

    I don’t know? Somethings fishy here. Microsoft releasing source code to SourceForge? Nah, some thing’s definitely fishy here.

  23. Now comes the really important question. Will Whidbey include a build task for MSBUILD, and/or will the VS IDE contain an "MS Approved" plugin for WiX (instead of using the current installer stuff).

  24. Eric says:

    Please Please release a single ZIP with code, and another with compiled release.

  25. vasilly says:

    screw whiners who can’t use CVS.

  26. MikeFM says:

    What host and target platforms are supported. Would it, possibly in the future, be possible to build an installer on Linux and have it work on Win9x & XP?

  27. For people that have not used CVS before, a quick and easy way to work with it is:

    It integrates directly into Explorer, and is VERY simple to use. I was up and running in a matter of minutes.

  28. Anonymous says:

    ron’s blog » Windows Installer XML (WiX) toolset has released as Open Source on

  29. This is so cool. Currently for the Wine project we are working on implementing the Microsoft Installer service. With a little luck and some time this will help speed along the process so Wine and ReactOS will have better support for newer Windows applications.

  30. Jayme Edwards says:


    Well here we go again. As the original contributor of the MSI task to NAnt’s "NAntContrib" project (, I knew how useful an XML representation of MSI would be and put alot of work into getting these to do nested directory configurations just like demonstrated in the snippet above working, and automatically registering COM and .NET .dlls properly.

    Many developers in the NAnt community put alot of hours into refactoring these tasks, adding MSM support, and at my employer (Rockwell Software) we use these tasks to actually build some product installations with a high degree of success.

    What I don’t understand is why Microsoft can’t put the hours it obviously spent copying what’s in NAnt (MSBuild) and now the MSI/MSM tasks (WiX) into building some high quality addins for Visual Studio .NET that just generate and edit XML adhering to the NAnt MSI/MSM task schemas? I mean I actually wrote an XML Schema definition for the MSI/MSM tasks specifically to make integration easy, and while Microsoft have been quick to "embrace and extend" even open source projects, I’ve yet to see them play nicely with people who have taken their technology (Microsoft .NET) and embrace it without having to copy, rename, and confuse efforts.

    Maybe it’s just me, but I’m looking forward to the days when Microsoft returns to bringing some real innovation to the table like before the Java lawsuits hit.


    Jayme Edwards

    Product Architect

    RSProduction Portal

    Rockwell Software

  31. Slashdot has just posted a pointer to the Shared Source release of the Windows Installer XML (WiX) Toolset , now available on SourceForge .

  32. Olivier Hault says:

    Rob: Congratulation, you are the first to offer Eternity of Life to a software coming from Microsoft. It’s a very important aspect in IT software maintenance.

  33. Nobody says:

    The OpenSource MSI2XML and XML2MSI utilities at have done this for quite awhile already, and now Microsoft wants to displace it with their own incompatible XML schema and toolset!

  34. Note: I removed several off-topic, duplicate, and what some people might consider offensive comments.

  35. kuya says:

    Thank you Microsoft … This is one application that I need to use 🙂

  36. Yes, you read that right. They’ve released the Windows Installer XML (Wix) Toolset as open source. Here’s the SourceForge project page. Link via b-links….

  37. Bueno, es exactamente as como lo leen, un equipo de programadores dentro de Microsoft han liberado una herramienta para ganerar instaladores .msi apoyada en XML como un proyecto opensource en Sourceforge. La pgina del proyecto esta

  38. Ben says:

    Maybe the link "Make a Donation" to robmen should be removed, it just looks kinda silly… 😉

  39. Drill this past weekend, with an APFT on Saturday. My stomach muscles still hurt from the sit-ups. And I have got to run more often. It was a pretty quiet weekend otherwise, though. I was staying at my parents’ house,…

  40. Ben, I agree, but I’m not quite sure how to get SourceForge to remove the "Make a Donate" link from my profile. Though, honestly, I haven’t spent much time configuring my user profile. I was having much more "fun" just trying to get the WiX source posted (as my major mistake earlier this morning indicated).

    Right now, I need to go to sleep.

  41. no_body says:

    Too bad your still using horrible proprietry Languages for your blog. WHo cares about this use nullsofts!

    If your and OS advocate your wouldn’t be using an asp and weblog. Your would be using php. and Mono. =-)

    Seriously tho good step.

  42. SC says:

    Great stuff. I am about to dig into this thoroughly.

    Are there plans to add "hooks" ala Visual Studio .NET’s capability to make COM+ de/registrations as part of an un/installation?

    Thanks again for putting this out there!

  43. JRP says:

    How is WiX different from msi2xml/xml2msi?


  44. Marc Brooks says:

    To Jayme Edwards: While I understand your frustration at not having your extensive work adopted, I think you’ve missed part of this posting. Namely, MANY internal projects at Microsoft are ALREADY using this to release MSIs, which means it’s been around for quite a while and just now being released to the wild. Your assumption that Microsoft employess had "hours obviously spent copying" your project is self-aggrandizing. What makes you think your project came first? What makes you thing that Rob even knew about it? What gives you the audacity to claim Microsoft copied from you?

  45. Reid Gustin says:

    To Jayme and Marc: To be more specific, this has been around internally for more than four years. To the best of my understanding, Wix v1 came out shortly after MSI 1.0, and was being worked on in late 1998/1999. It is currently used by most of the large Microsoft groups except Visual Studio, which is currently evaluating it (there may be other groups, but not big ones that I’m aware of). As for the hours spent copying NAnt and Jayme’s project, that’s simply false. To be completely candid, I have no idea what NAnt and Jayme’s project do, because Microsoft has a policy of not looking at Open Source projects (clearly WiX is now an odd kind of exception!). Having written chunks of the WiX compiler and linker myself, I can certainly testify to having written that code from scratch to meet the needs of our customers. I’m going to leave the detailed response to Rob, mostly because this claim makes me furious, and I’m probably not capable of responding further politely.

    To JRP: I don’t know how WiX is different from msi2xml/xml2msi (see above on looking at other Open Source projects), other than the fact that WiX is how much of Microsoft builds MSIs internally.

  46. jts says:

    It’s good to see Microsoft releasing open source software (on purpose this time! :-). Thanks for the contribution.

    When may we expect Office 2004 on Linux? (Keep the source, just give me a working binary…)

  47. anon says:

    Is this installer just one more way to show that open source can be used to capitalize on vulnerability in an OS? Is this just one more ploy to prove that closed-source is the best and most secure means of developing software/OSs? I ask this because I find it hard to believe that Microsoft has decided to do something that wouldn’t generate revenue for them and their shareholders. I see this turning into a battle of open source VS. Proprietary software giants. Here’s how I see it going down: 1. You release the source for WiX (already done), 2. Someone (not saying Microsoft related) generates a program using this source, that capatizes on a vulnerability in how installers install software, which *may* create more vulnerabilities on a desktop/server, that they can later capitalize on. 3. Microsoft has a press release saying "I knew all along that open source meant vulnerabilities, we are shutting down WiX." or something to that effect. 4. Microsoft will look like a saint and open source the devil to laymen for a few more years, generating even MORE revenue from companies who were previously in the middle of the road on which system to use.

    I know, I’m being vague on my ideas, but I’m writing it as best as I can see it, and I *am* tired.

  48. Lonnie McCullough says:

    anon, if thats even your real name, your rant is just so obviously influenced from a position of pure spite that its hard to even see what point you could possibly be trying to make. There aren’t any ulterior motives here. Just accept that there are at least some people in Microsoft that see value in sharing information with others that might find it useful. I don’t understand why everything MS does has to be tinged an evil color to some people. Accept that MS is trying to change how people percieve it or take it to /.

  49. TX says:

    It’s fairly common knowledge that the CPL and GPL are incompatible.

    I’m curious to know whether it would be legal to bundle a GPL program as an MSI installer using WiX. Does that count as a derived work of the GPL program, and/or a derived work of WiX?

    IBM seemed to be pretty uninformed about their license’s incompatibility with the GPL, denying that there was any problem. I guess there wasn’t from their side, if you mix the two it’s the GPL which gets violated, after all.

  50. Reid Gustin says:

    To anon: It’s Open Source! Free with a capital ‘F’! You can read through it looking for those vulnerabilities all you like. If it turns out that there is one, let us know.

    But really, WiX doesn’t let you create MSIs that you couldn’t have created otherwise, it just makes it *much* easier, and allows it to happen as part of a normal build process. So your theoretical vulnerability doesn’t have anything to do with the ‘open source-ness’ of WiX, which makes your whole point a little fuzzy. Get some sleep, and if you still have a concern, let us know.

  51. anon says:

    I do hope you are accurate. My concerns are not stopping me from using the software, I just have a hard time believing this. I guess It’s like when someone wins the lottery; if you went to your nearest C-store, bought a ticket, went home, fliped on the T.V. and heard them announce the numbers, and they turned out to be an EXACT match, it would probable take a while for reality to set in. To see THE giant in the computer industry doing something that I had hoped for for so long, and dobted ever happening, I become a conspiracy theorist as to their motives. I guess it’s just a case of "too good to be true."

  52. TX says:

    No, "too good to be true" is when they open source the compiler. 😉

  53. Jayme Edwards says:


    I’m sorry if my claim that it looks like you copied the MSI NAnt tasks puts you guys off, but I find it highly suspicious how similar the two XML grammars/technologies are. I’m sure you could dig up some internal Microsoft email with a date on it that would attempt to prove me otherwise, but considering you guys write the email clients too, it would simply be my word over yours ;).

    I think your missing the point here though, and I guess from the replies here I did a bad job of explaining it.

    Your argument is that because this implementation of an XML wrapper for MSI builds was in use by Microsoft internally for longer, therefore it must be better for the community. But what about the hundreds/thousands of users of NAnt technology that have already publicly been using the MSI/MSM support? These are developers, not being paid by you, who are furthering the adoption of .NET technology and have aided you, whether you see it or not, in having an even firmer foothold over competitive web-enabled frameworks like Java. Many of these same developers use the NAnt technology on Linux’s port of the .NET framework (Mono) and eventually MSI technology may have even been ported to Windows. But I can see how developers writing applications for platforms other than Windows doesn’t fit in with the strategy of the company so I guess that doesn’t surprise me.

    I guess I just find it unfortunate that Microsoft, a company I find to do a great job of taking existing technology and "shrink wrapping" it to make it more accessible/well-documented was unable to see that a very rich implementation of a similar technology was already available and take the steps to setup collaboration with these open source developers who have spent their time proving that such a move into XML grammar based build tools by Microsoft would be successful.

    When MSBuild was first announced, I read many forum posts between Microsoft developers and inquiring minds discussing why NAnt was not simply used. The Microsoft contacts seemed familiar with the technology. This would indicate to me that folks inside MS were not clueless as to how involved the open source community is in similar efforts.

    Anyway I apologize if I rubbed you the wrong way Rob, and if you did create this invention on your own merit then congratulations on contributing it to open source. I guess I just don’t understand what there is to gain by not leveraging an existing technology that seems much further along in its features (the MSI/MSM tasks can already exercise almost everything in the MSI SDK). I find it especially odd a PR standpoint that Microsoft’s competing site for for hosting open and closed source collaborative projects on the web, similar to sourceforge (Microsoft "Workspaces") was not used.


  54. SorryToTellTheTruth says:

    Any company that is constantly in litigation (from former allies, enemies, governments, schools, and of course an occasional upset college professor

    ) is probably not someone you want to have ties with.

    OF COURSE many people INSIDE of Microsoft want to make things better but it just doesn’t add up.

    Consider the tobacco companies… None of their employees are souless murderers, right? But the group of tobacco employees who work at "meals on wheels" does not OFFSET the reality of their situation.

  55. Jayme Edwards says:

    "ported to Windows"

    Should have been "ported to Linux" 🙂


  56. Reid Gustin says:

    Jayme: I’m going to sign off of this thread after this, but I really want to make a point. My argument is most certainly not that this is better because it has been used internally for longer than NAnt has existed. My argument is that I have no idea what NAnt or your extensions do, and I suspect that Rob doesn’t either. This isn’t getting released because we don’t like NAnt, it’s getting released because it does its job *really* well, and we want people to be able to use it. That really is all there is to it. There’s no question about "not leveraging an existing technology" or "further along in its features", because your technology *didn’t exist* at the time that WiX was started. If you’re further along with your features (do you know that, or are you assuming based on the blog entry?), great! But that’s really not the point.

  57. Matt says:

    Its a real shame when someone goes to the effort of trying to influence the internal microsoft culture about o/s, and releases an internal ms tool to the public, and then gets knocked down by the anti-ms zealots.

    I dont really care about the o/s argument, but congratulations Rob & Reid & co for doing this. I’m not sure why people have to come along and start talking about litagation and crap, and fight against the first person in microsoft who releases something the way they want it to be released. I suppose it comes down to ‘anything ms does is inherently evil’, and nothing will ever change their minds.

    Kudos to you guys for doing this, and dont let the detractors get to you.


  58. Reid Gustin says:

    Matt: That’s *really* nice to hear, thanks! I want to make it clear that this is Rob’s project, through and through, but those of us who have written and continue to write code for it are pretty proud, too.

    Honestly, the response has been impressively good. For something that was developer driven from inception to release, it’s interesting to start thinking about it from the point of view of someone outside Microsoft who just wants their problem solved.

    Anyway, we’re stoked.

  59. Raphael says:

    Suddenly everything seems a little bit different; Microsoft releases code under an open-source licence. Wierd. But cool. Very cool.

    I could get used to such things!

    Thanks to you guys.

  60. Max says:

    TX wrote:

    /* It’s fairly common knowledge that the CPL and GPL are incompatible.

    I’m curious to know whether it would be legal to bundle a GPL program as an MSI installer using WiX. Does that count as a derived work of the GPL program, and/or a derived work of WiX?


    That depends. For years, Macintosh compilers were IDEs that called gcc (and, I believe, that is still the case). The question is how the GPLed program is called/communicated with.

    So, how would your GPLed product call WiX? If you’re linking in, then you’re probably too close. If you communicate at "arm’s length," perhaps forking a process and talking via pipes/streams, then the FSF doesn’t consider that a derivative.

    BTW, fot those who do not know, the GPL states you cannot create combine works covered by the GPL and works under licenses with more restrictive terms. Reading the CPL, there are more restrictive terms, for instance, the CPL patent license is not as broad as the GPL requires (the GPL requirement basically invalidates the patent), and the CPL states it is governed by New York law.

  61. Jayme Edwards says:


    Point taken, I get where your coming from, I guess I just don’t understand the surprise that someone else out there who has created a similar technology would be frustrated, that’s all. I just don’t really buy the argument that while you guys want to advertise contributing something in an open source fashion, on the other side of the coin you say it’s not part of your job (there’s no policy in place at Microsoft I believe you said) to watch things that are going on in the open source community. It’s just two different ways of looking at it, I guess. Most people who advocate the benefits of open source realize the win-win situation of leveraging existing technology for both faster time to market and backward compatibility reasons, and part of the community initiative is to whatch the innovation landscape to be aware of duplicate efforts and try to make things play well together.

    Thanks for clarifying that WiX was created first, however I still don’t see how it answers my concerns on what advantages to the user the availability of a technology that has significant internal usage by one vendor has over a publicly available technology over a longer period though.

    Don’t get me wrong – I’m not out to try to get credit for something Rob did here, if I was I’d have filed a patent on it (I did the original MSI task design in my spare time, just like Rob). I’m just trying to steer you guys towards being more aware of similar efforts and pointing you to a place to look when you get to implementing more advanced features of WiX. It’s not crazy in my mind to lay the possiblity of integration with NAnt in the future out on the table to make things nice for users. I had just hoped this would have happened earlier instead of later. I guess I over-estimated how visible .NET based open source projects are to Microsoft development teams *shrug*.


    Actually, I’m not an "anti-MS zealot" but quite the contrary. We almost exclusively use Microsoft technology, by choice here at Rockwell Software and have a very good working relationship with them. At the same time I don’t think there’s anything wrong with expressing concerns or my opinion. My points may be taken harshly but I’m not trolling here, if you’ve got a problem with what I’m saying let’s talk. That’s the beauty of forums isn’t it?

    Anyway good luck with the technology I’ll certainly be watching it closely and we’ll probably end up using it here once it matures to contain more of the features we need for everyday use.


  62. Peter Torr says:

    Congratulations Rob, Reid, K, Robert, and Derek. Now if only you guys played Halo as well as you wrote code… 🙂

    – Just a P.M.

  63. Reid Gustin says:

    Jayme: [Ok, I lied about signing off.] Another clarification. It’s not that there’s no policy in place to have developers look at Open Source projects. It’s that I’m part of the Windows organization, and having code get into my source branch from an Open Source project would be a disaster. At the very least, I suspect I’d lose my job, which I’m fond of.

    Anyway, what kind of features do you need that WiX doesn’t do? We’d love to hear about them!

    On a side note, I don’t believe Matt was addressing you, but rather "SorryToTellTheTruth". I don’t want to speak for Matt (especially given that I don’t know who he is), but that was my impression.

    Peter: We’ll settle up with you later. Running riot!

  64. Peter Torr says:

    Jayme, could you not have a transform to move WiX files into your format and vice-versa? That’s one of the benefits of XML – You can take the data out of the file format and reuse it somewhere else. Then WiX and the other projects can continue to innovate on their own schedules, but remain interoperable so that users can pick and choose the best tools for the job.

  65. Jayme Edwards says:


    Sure, that was one of the solutions I had in mind thinking about this as well. One difference in the design between WiX and NAnt’s MSI support is that it appears you guys compile code and then package it in a single step (e.g. you reference src .cs files in the example above, they get put in an assembly, and then included). NAnt has a "Task" API that can be used to write single functions of work (compiling code, zipping files, registering in the GAC, checking stuff out of sourcesafe, etc.) of which only one of these is building MSIs.

    NAnt builds can go from source code to finished MSI install that includes the compiled assemblies, documentation generated from the code comments, end user documentation generated with HTML help workshop, and start menu shortcuts every time you build. So to do this sort of a transform would probably require at a minimum (going to NAnt) creating a csc (C# compiler) task, and then an MSI task that executes after it. Conversely to go from NAnt back you would need to merge the two tasks into one set of WiX elements.

    NAnt has a very rich system for doing property replacement so you dont have to type as much when you are reusing paths to reference files and folders that would make this a pretty extensive XSL stylesheet to write. However it would be doable so long as the XSL processor supports a scripting language for doing some of the more complex stuff that isn’t built into the XPath language. I’m not sure if the XSL implementation that runs on Linux for Mono (Linux’s port of .NET) supports this but I know Microsoft’s Windows XSL processor does this.


  66. Rob, I think better approach is to select official build master for project and include only public key with distribution (sn -p). See for example Genghis distribution at "You may wish to use this file to simulate the snapshot build process; please be aware that you will not be able to properly sign the release mode Genghis DLL (the private key is not provided in this distribution)"

  67. skufle says:

    As I am not used to working with msi, I could have used some more sample XML in the binary release (for example a service install) or links in the Getting started section to websites with additional information. I guess I’ll just convert some of our custom install scripts for testing purposes.

  68. Dan Jagnow says:

    One nice feature of the NAntContrib msi task (and NAnt in general) is being able to use <fileset> elements to specify groups of files. This element supports wildcards, an exclusion filter, and recursion of subfolders. In my mind, this is particularly valuable for Web projects, where the number of files can change often. Does WiX support a similar construct, or do I have to specify every file in the XML?

  69. #!/bin/blog says:

    Oder so hnlich. Microsoft hat lt. Computerwoche zum angeblich ersten mal Software als Open Source verffentlicht. In Rob Mensching’s Blog stimmt denn auch der Link, denn den hat die CW natrlich nicht auf die Reihe bekommen. Das beste dabei? Der…

  70. From On Monday, Microsoft released some of its code under an open-source license, and posted it on SourceForge, the…

  71. Dan Jagnow says:

    As a partial answer to my own question above, there is a FileGroup element listed under WiXAuthoringWix Schema in the WiX help. Some examples of valid filter attributes would help, and it would also be good to know if it will recurse subfolders.

    A couple more notes on the documentation:

    1. The Adding Custom Actions topic mentions that in the wixbinca directory there should be some WiX Server CustomActions DLLs ("sca*.dll"), but there’s no such directory in

    2. In several locations, elements are listed without being escaped, so you can only see them if you view source in the HTML help.

  72. James Geurts says:

    Reid, to answer your question for a feature that I would like to see… I would like to see support for configurable merge modules. I could be wrong, but I didn’t see support for them. If you’re wondering why I would like to use them, I am writing a program that converts a vdproj to an xml fragment (originally intended to be used with NAnt’s msi/msm tasks). I now plan to spit out an xml fragment that can be used by wix, also. To support dialogs (configured from VS.Net), configurable merge modules need to be supported by the build tool.

    Dan, as for the filesets, I’m sure that if/when NAnt wraps this toolset, support for filesets will be "integrated."

  73. blog-o-fobik says:

    Apparently so. via dive-into-mark…

  74. SiM says:

    I think it should be

    <File Id=’TestAssemblyProductFile’ … Assembly=’.net’ …. >

  75. Niels says:

    Congratulations to this bold move!

    Just one remark: the name of the tool exemplifies how hard it is to choose names in an international environment like Open Source. In German, WiX sounds like "wichs", and "wichsen" is an only too well known German derogarative slang word for masturbation. To be called a "Wichser" is quite a defamation. If response from the German Open Source community disappoints, consider changing the name. How about WiniX… 😉

  76. Jeff Clark says:

    We have a VB app that took a could of XML files as input. It worked fairly well, but required updates as new installation actions were requested. (It was originally created for just basic installs that were deployed often).

    Now we can replace it with something that has all (or at least most) of the functionality that we’ll need for some time.

    I should be able to transform our XML files into the wxs files needed.


  77. Jeff Clark says:

    …that took a couple of XML files as input…

  78. Robert Björn says:


    Thanks so much for all your work in making this tool available externally, despite continuing insinuations on zealot forums about Microsoft’s "evil intentions". It sounds very interesting. Those of us working in the real world know that Microsoft have a lot of skilled and dedicated people, and are doing many things right — particularly, I feel, in recent years with .NET and the forthcoming improvments to the API and general architecture in Longhorn.

    I would like to ask a question, though: how does the Visual Studio 2003 setup project compare to the possibilities offered by the tool that you have released? I think there are clear benefits with a simple, XML based format to increase understanding of (and allow significant control over) the Microsoft installer, but I would still be interested to hear a little about what can not be done with VS that your tool provides, or the other way around.

    Best Regards,

    Robert Björn

    Stockholm, Sweden

  79. Robert Flaming says:


    The descriptions of the filesets construct as being a recursive operation on folders is a bit confusing as it sounds inconsistant with the Windows Installer rules for the integrity of a component. (excerpt from MSDN topic "Windows Installer Components")

    In brief, these rules are:

    – Each component must be stored in a single folder.

    – No file, registry entry, shortcut, or other resources should ever be shipped as a member of more than one component. This applies across products, product versions, and companies.

    As you may already know, the Windows Installer does a lot of work to enforce component integrity. I’ve found that if an setup author and/or authoring language does not account for these component rules, unsatisfactory things occur (see MSDN topic: "What happens if the component rules are broken?")

    Taking a wider view, it’s very cool to have multiple solutions in the same space. Setup and configuration is a pretty complex beast so it’s inevitable that some base assumptions will be different and from that the technolgies will diverge over time. It’s great to hear that these toolsets have made MSI work for them as that can be a challenge sometimes. The more people that are out to master setup and configuration the better off we’ll all be, even if there is implemenation divergence.

    No worries,


  80. Robert Flaming says:

    Addemdum to earlier post: Rob’s dropped a primer on the component rules earlier in his blog called Component Rules 101

  81. Paddy says:

    Iam a user of both open source and "closed source" Applications ie I choose the best from

    both worlds. I make living writting software

    therefore I support both worlds (ie I can not afford to be religous as far Oses are concerned because I have worked with several of them). But what really amazes me is to read what some people (plus Magazines) who themselves have never developed any software other than "copy and paste" other peoples’ programs are the ones who more noise about open source. One thing is definately clear here. Open and "closed source" are going to co-exist as Open source because mainstream. It is just another form distribution. For those who think open source or closed source is the only way to go are blunt mistakes. I will give you an example: Very many programming langauges have been introduced to replace the so called lagacy ones. But the reality

    is that those "legacy" one are still being used to day along modern ones.

    Therefore for those of you who see only evil in MS I would like challenge you to tell us how you earn your living. Grow up and if you call yourselves programmers you should be able to program in more than aleast 2 programming languages and use more than one OS. In this world we have diverse appearances, cultures and tastes, we need both worlds.

    Every thing has a start. An open source or MS

    is not the end of it!


    Bravo guys for your work . Weiter so!


  82. Ossama says:

    I wouldn’t use it even if you pay me to do!

  83. Takashi OTA says:

    WiX project is now introduced at Slashdot Japan ( and this entry of your blog, too (

    I has translated this part into Japanese ( Am I OK?

  84. Takashi OTA says:

    Sorry for my double posting due to network trouble…


    Takashi OTA

    Kanagawa, Japan

  85. Dan Jagnow says:


    Your point about component rules is well taken. That set of problems is not particularly relevant to me – I’m accustomed to Web site deployments where you just pull half your servers out of the cluster, uninstall the old MSI, install the new MSI, and then swap and do the same for the other half of the servers. But WiX also has to support patching, and that’s where it gets tricky.

    Incidentally, I was able to get WiX’s FileGroup working, though I wish I knew more about some of the attributes (like Prefix).

    <FileGroup filter="*.dll" Prefix="*" src="$(var.source_folder)" DiskId="1" />


  86. No worries, Takashi, I’ve removed the double post.

  87. Erv Walter says:

    Thanks a lot for taking the time to release such a useful internal tool to the community!

    P.S. Can you talk to the folks who own the internal source control system and get them to release that also 🙂

  88. Christopher says:

    Quite impressive. I’ve wanted a declarative installer language for a while now. I’ve come very close to writing one on a couple occasions. I’m quite glad that there is a high-quality implementation already in the wild with source access. Thank you.

  89. First off thanks to Rob and company for making this release available to the rest of us. Long have I wondered about how certain Microsoft software installers were created since the prominent InstallShield or Wise logos were missing. Several years ago it occurred to me that you guys had built some internal tool that created the MSI files. This only made perfect sense seeing that some team there also had the specs for it and you could easily build the grammar for a compiler. Now I know what u guys have been using all along.

    Rob, also congrats on making your first project at SourceForge. I myself just created my first project there as well some days ago (k, shameless plug coming up). I had written a C# CRC checker some years ago and decided to make it open source (under GPL) mainly to try something new and hopefully it would benefit someone needing some help. I did not know of the Common License, so being mostly of GPL I released it under that @

    Anyways, I’ve found out how different it is to be an admin of a project rather than on the other side of the mirror as a user.

    K, getting back on track now…just wanted to comment on Jayme’s comments about his ant like project…

    Jayme, you have all the energy and zealousness of a program manager. I mean that in a sincere and non-spiteful way. Clearly, as you headed the projects you mentioned, you want more resources applied to them. I certainly see your point about not duplicating effort. But, I’m sure you’ll agree that the world would be a very sad and lonely place if everything was the same. Every day there’s someone re-inventing the wheel, whether on purpose or ignorance; the fact is, this is the very fabric of innovation. I would only ask that the next time you feel like expressing yourself you take a breather and think twice about what ideas you want to get across and how you can convey them in a more positive light.

  90. Reese says:

    Great Job Rob! I just hope that this effort results in some type of debugger for MSI. One of the problems we experience at Getronics is when we get a problem that isn’t readily explained in the verbose logging. We end up having to debug by trial/error which isn’t desirable. I understand that Microsoft wouldn’t want to release the source for the MSI engine but it would make life easier to be able to step through the internal scripts or at least expose the information that I author in the database and have a way for me to see the logical flow.


  91. Jiho Han says:

    are there ANY documentation for this other than the example above?

  92. Reid Gustin says:

    Jiho Han: There is a relatively small amount of documentation in the schema file (Wix.xsd), but past that, no, not yet. Keep your eye on Rob’s blog for more, and if they don’t show up in the next couple of days, I’ll see what can be worked up.

    Also, for any of you out there who have gotten part of it working, those examples would be really useful. Rob’s currently working on a good way to share all of that information (this forum and the sourceforge ones are probably not ideal).

  93. ravs says:

    The verbose mode are not working for neither candle.exe nor light.exe.

    Can anyone else confirm this ?

    Also in the code the callbacks are not being fired for the verbose modes.



  94. Short entry about the WiX ship party last night with pictures of the developers and the cool

  95. John Villar says:

    Way to go guys!!!! Somehow i see microsoft a different way now X-D hahahaa…… really, this is a little step, but in the future everyone @ microsoft will realize the true potential of using OpenSource and Standards (wich recently have been adopted more and more)…. Congratulations to all the WiX Staff!!!!

  96. James Geurts says:

    I am creating a tool to generate the necessary WiX xml fragment from a vdproj file. If you’re interested, you can get it from:

  97. Aaron Gray says:

    More documentation is definately required, the three stage example in the Windows help file is really not adequate, the first example skips XML that is not explained. The second is fair enought. But the last one does not even explain what it is meant to be doing. Not very good.

    The reference has many feature tags that are not explained at all, just with a standard comment.

    Really this is just like most immature Open Source software, ie the documentation is lacking. But for a version 2.0, this is bad. Is this partly why MS have released it as open source, and partly either to spite the anti Microsoft open source community releasing it on SourceForge and at the same time appealing to open source projects to do things "properly" and use Microsoft technology.

    I suppose really one should look at the MSI SDK documentation for a proper grounding.

    The licencing issues for GPL projects also are a possible problem, it would be good to have proper official statements from both sides, from the FSF and from Microsoft, and also possibly from the OSI.

    I want to write a Windows installer for a GPL’ed Java project, but the ammount of learning required in order to use WiX is quite a steep climb and I am wondering if we could not have full examples, standard "boilerplate" helper projects, or wizards that would make standard projects easier to get off the ground.

    Hope you do not mind the critism.

    A big thanks for opening things up, interesting possibilities.

  98. Aaron Gray says:

    "the three stage example in the Windows help file is really not adequate"

    should read :-

    "the three examples in the Windows help file are really not adequate"

    Sorry it is late.

  99. Reid Gustin says:

    Aaron: I don’t think there’s any question that the documentation is currently lacking, as are the examples. But no, we did not release it without documentation to spite you, and yes, we are working on giving more and more documentation and examples. It’s not that there are lots of them internally, and none externally, it’s that they don’t exist yet. The whole v1/v2 thing is interesting, too, but I’ll leave that to Rob to explain in a future blog entry.

    Rob mentioned in his latest blog entry that he’s been swamped, which is certainly true, but as far as I know, his next goal is to give a little bit more background on the project, and then start working on some bigger examples that give everyone a better place to start.

    I suspect that going forward, Rob’s blog and the sourceforge mailing list (see details at the project page) are going to be the best places to look for HOWTO-type things.

    As for the licensing stuff, I’m not the least bit qualified to answer that.

    Heh, as for criticism, I think that it has actually been really interesting, and you raise good issues. No complaints from me.

  100. James Geurts says:

    I have a suggestion to go along with Aaron’s request for further information. The NAnt project (sorry to keep bringing that up 🙂 has a wiki setup so people can add to the documentation at their leisure, or when things arise. That community has found the wiki to be an extremely helpful tool for getting people up to speed and addressing common issues. Since SourceForge provides webspace to all projects, it might be worth setting up a wiki and/or a forum application…

  101. Reid Gustin says:

    James: That’s a pretty good idea, we’ll see what Rob thinks. In the meantime, the WiX mailing list on sourceforge seems likely to become the info distribution method of choice.

    How much web space does sourceforge provide?

  102. Aaron Gray says:

    Thanks for the reply, I will sign up for the mailing list. A Wiki is a really good idea.

    All the best.

  103. Really most of the technical discussion.

    Not able to locate a place to have discussion over this, strategic outcome about this movement from MS.

    – First OS movement from MS and really that meaninful? Why installation?

    Currently Winx platform deployment is considered to be most toughest among the available OS(Java and other deployment are pretty easy and Java already have good frameworks like jnlp which keep you away from deployment of app and updation) But what microsoft have is complex structure of installation i.e. specific dir. structures, registeries, uninst. logs, etc, etc. Goes without saying keeping so much information and structure help in one way or other but it makes program installation nighmares*** and here comes expert companies like Wise, InstallShield which make smart tools(Really smart I will call them partial AI) and help these task but this comes at Big Big costs, Again a thing which may hurdle use of Winx

    And OS project like Zero, etc, etc. not able to do what MS wants from them(offcourse indirectly)

    So MS goes its way and it open source its installation technology(How it can ask wise to open source InstallManager) and ask open source community "hey guys, look we are open now run hard behind it and create wrappers around it, and yes do it fast"

    Summarize: Is this a contribution to community or MS is now willing to use this community?

    ~~~Just curious to know this information~~~

  104. Anonymous says:

    Huddled Masses &raquo; Windows Installer XML

  105. Dude says:

    I’m sorry…. WHAT did you just try to say? heh

  106. Nobody says:

    &#1055;&#1098;&#1088;&#1074;&#1080;&#1103; open-source &#1085;&#1072; Microsoft! &#1044;&#1072; &#1074;&#1080; &#1077; &#1095;&#1077;&#1089;&#1090;&#1080;&#1090;&#1086; 🙂 [&#1087;&#1088;&#1086;&#1095;&#1077;&#1090;&#1080; &#1087;&#1086;&#1074;&#1077;&#1095;&#1077;…]…

  107. Kevin says:

    I wonder about the patent clause in the CPL. When I use this software, doesn’t this effectively void any patents that I have for my products? MS could just clone my product and I would have no recourse. Patents didn’t stop MS before, but companies like Stacker got at least some money out of it when MS stole their ideas.

  108. Denni says:

    I don’t know why everyone appears to be so excited, the freeware MAKEMSI (http: // makes it almost a trivial process to create MSIs. WIX and MSI2XML are both much harder to use…

    My 2 cents worth.

  109. Note: to reduce "google bombing" ( I have removed some the explict URLs in some of the comments here. None of the content was changed.

  110. John says:

    I’d like to automate my builds of a complex web application. If I can find a way to generate my MSI creation, I would be overjoyed. Does anyone have an example of building a web project msi?

  111. First announcement from the project page says:

    The Windows Installer XML (WiX) is a toolset that builds Windows installation packages from XML source code. The project, originally developed internal to Microsoft, was released today under the Common

  112. Ævar Arnfjörð Bjarmason says:

    Reid Gustin: About sourceforge storage space:

    Personal space on 5MB

    Project webspace: 100MB

    CVS Space: Unlimited

    File relase space: Unlimited

    Hope that cleared it up

  113. Techopedia says:

    WiX or Wix – Windows Installer XML The Microsoft’s First CPL project.

  114. Brendon says:

    This is an excellent tool. Thank You. And to all the tinfoil-hat-wearing, turd-slinging zealots…. Be thankful that he opened it. It is a step in a good direction.

  115. Karen says:

    Had a bit of trouble installing it on the laptop, took a bit of time, but now it works perfect.

  116. Handylader says:

    Very great tool! It works fine. Thanks.

  117. One small step for Rob…

  118. hobbit says:

    don’t bother. there’s already an open source project out there that does this and does it better.

  119. Forever Geek says:

    With the release of the WiX, I’m trying to read more about how to make an installer, and what exactly can be done with installers. While I definitely know the typical user experience with an installer, I know next to…

  120. Snyke says:

    Really nice tool Rob.

    And good luck with your OSS future 🙂

  121. Hey Finally the sun has risen

  122. Full disclosure: I removed an offensive comment (that surprisingly actually seemed to be a compliment) and a random link to some unknown web site.

  123. Jerrold Neal says:

    To repeat a note on the documentation:

    1. The Adding Custom Actions topic mentions that in the wixbinca directory there should be some WiX Server CustomActions DLLs ("sca*.dll"), but there’s no such directory in

    Have there been any improvements on the documentation regarding Custom Actions?

  124. Windows Installer XML (WiX) toolset has released as Open Source on…

  125. Sampath says:

    i created a .wxs file using dark.exe on an existing .msi files and made some changes and when i use light exe for the new wixobj file it is looking for some .idb files form where can i get source to these files.

  126. Sampath,

    Please send all WiX toolset questions to "wix-users at".

  127. Imagine a blog entry where I try to capture the process for creating a new project on SourceForge from Microsoft.

  128. Lance Fisher says:

    This is great. Congratulations on the OS release. It really does seem like MS is trying to change its image, and it has been doing a lot for the industry. I will checking out this tool for our build process. Thanks.

  129. Imagine a blog entry where I try to capture the process for creating a new project on SourceForge from Microsoft.

  130. Imagine a blog entry where I talk about my first real day at OSCON 2004 where I saw an amazing keynote, presented WiX, and hung out with a few guys from Ximian while a good time was had by all.

  131. Imagine a blog entry where I note that FlexWiki has joined WiX and WTL as the third Open Source project from Microsoft.

  132. Imagine a blog entry where after an email and phone call later, the Directory of the Shared Source Initiative is now blogging.

  133. Is this a first? Microsoft have released one of their internal development tools as an open source product, on &lt;a href=&quot;;&gt;SourceForge&lt;/a&gt; no less.

    The tool is an XML based Windows Installer (MSI) creation tool, used internally within Microsoft by a hell of a lot of people, and it has now been released into the wild.

  134. Sebastian says:

    I just released alpha version of WixTool for Framework 2.0 beta.

  135. Joe says:


    It’s the answer to our build nightmares. While using visual studio to build on developers machines, is ok for development it’s a nightmare for operations and nightly build scenarios one a dedicated build machine.

  136. Rishikesh says:

    I have some queries regarding the usage of WiX.

    What I intend to achieve is have a merge module that ships certain files. I want this merge module to come from two .wxs files, which when compiled would create two wixobj files. I intend to link these two files to form a single msm.

    In this case, how should I specify the entry sections in wxs files? I get error saying ‘Multiple entry sections ‘X’ and ‘Y’ found. Only one entry section may be present in a single target.’ How do I overcome this problem?

    If this is not the right forum to post queries, where should I post these?



  137. robmen says:

    Rishikesh, wix-users mailing list is the appropriate place to post questions. Sometimes people miss the questions, so you have to ask more than once. See the sidebar at for a link to the mailing lists.

  138. Imagine a blog entry where I notice that Mary Jo Foley has this blog on her &quot;Microsoft Blogs to Watch&quot;.

  139. MikeFM says:

    It’d be nice if Microsoft, Apple, RedHat, and Debian could get together and work on a universal package management system that worked the same across all systems and did everything that was needed for good package management including nice looking installers.