Showing posts with label WiX. Show all posts
Showing posts with label WiX. Show all posts

Wednesday, January 07, 2015

"Wax keeps your candle burning" (You'll get that if you know WiX)

Visual Studio Gallery - Wax

Wax keeps your candle burning
While it's easy to create an empty setup project with the WiX toolkit, populating the list of deployable files and even more keeping the list up to date can be a very fumbling task.

This tool is a Visual Studio Extension that helps you to create, verify and maintain the list of deployed files in an interactive gui.

Documentation, source code etc. can be found on


I know, I know. "Real WiXers don't need no stinkn UI!"

Well, I guess I'm just not a real WiXer then. :P

While the Visual Studio Setup and Deployment support is back for VS 2013, Visual Studio 2013 gets Installer Projects support back!, WiX is still a great setup/installer choice, if you can get over the learning curve (i.e. XML editing). There's a number of extensions that will help you there, with this one, Wax is a new entry. Plus its source is available too.. :)

Thursday, February 20, 2014

Seven step guide to whipping up your WiX setup

Rob Seder - More on WiX, and Suppressing the License Dialog


As previously discussed, Visual Studio 2012 and later no longer include any sort of MSI/Installer/Setup project template. That means if you create a WinForms, command-line, or Windows Service type of application, there is no way to create an installer for it out-of-the-box.

Instead, you have a couple of free options: Flexera InstallShield Express and WiX. You might find if you work for a company, Flexera has no interest or incentive in helping you find a way to automate their per-developer, but “free” license activation stuff. If you contact them, you might just find that they spend all their time trying to get you to buy the more-expensive products they sell. So, you might be stuck with using Wix.

Wait, so what’s the point again?
So, the point of this blog post is to help out future Robert not to get mad again at WiX. In pretty much all circumstances where I’d want an installer, all I really care about is letting the user pick the installation directory. So, how do you do that? Unfortunately, I don’t have a simple answer, because the solution isn’t simple – but hopefully this blog post will answer those questions, step-by-step, and with the actual details needed!

I’m using VS2013 Ultimate for the example below, but this should work with any SKU of Visual Studio 2012 or later, I believe.

STEP 0: Install WiX:
As of this writing, v3.8 is out and that’s what I’m using, here. Navigate to: and run the installer.

STEP 1: Create a WinForms Project:

STEP 2: Create a WiX Setup Project:

STEP 3: Add Project Reference:

STEP 4: Modify the XML to install the Project Output:

STEP 5: Modify the XML to include a basic setup UI:

STEP 6: Add a reference so that the setup UI works:


STEP 7: And finally, suppressing the License Agreement dialog:

Now, finally, when you compile and run the setup, it should show the wizard from up above, but it skips the license agreement screen.

WiX does have something of a learning curve, and it's tough for those who are used to the Setup and Deployment Package (don't get me started on that being gone) or another UI based MSI creating tool. Rod, besides a little rant, provides a nice guide to get going with it...

Monday, January 27, 2014

SharpDevelop 5 goes MIT and Beta 1 too!

SharpDevelop Community - Christoph Wille - License Change for SharpDevelop 5

With commit hash 1300bac39c (corresponding to build number, our Beta 1 release) we have switched the license for SharpDevelop from LGPL to MIT. (SharpDevelop 4.x and older remain LGPL licensed)

This means one very important thing: You can use our source code in your projects (not only the assemblies).

As a user of SharpDevelop, nothing really changes. You still can build applications of any license flavor.


SharpDevelop Community - Christoph Wille - SharpDevelop 5 Beta 1 Available


It has been (too) long in the making, but our major rearchitecting of SharpDevelop is close to being done, with only a few functional areas not in this Beta release:

  • EnvDTE.FileCodeModel is missing, thus our custom NuGet packages will be broken (T4MVC, MVCScaffolding and EF)
  • Code Quality Analysis and SharpDevelop Reports are missing (due to a rewrite of SDR)

Please note that Beta 2 is not too far off, and these will be in Beta 2.

As pointed out in the blog post SharpDevelop 5 C# Tech Preview, we are still shipping with C# only in SharpDevelop 5 – and this will most likely remain true for RTM too. (VB.NET will compile, but it won’t have code completion nor refactoring) SharpDevelop 5 installs in parallel to older versions, and if you have the patience: give it a dry run with a copy of an existing project (at least backup and/or use source control before you let a beta IDE touch your source code).

For further information on what’s new, please consult this list of select blog posts from the team members (I'll be doing a few "What's New" blog posts in the coming days, because obviously these are only a few big-ticket items - check back!):



It's darn nice to see SharpDevelop still kicking. I've been following them for about 10 years, imagine the projects that have come and gone in that time, so seeing that this has stood the test of time, let alone improved with age like a fine wine... well that makes this a happy Monday indeed!


Related Past Post XRef:
SharpDevelop gets T4 support
NuGet isn’t just for Visual Studio anymore… NuGet coming soon to SharpDevelop
NuGet your Avalon (SharpDevelop’s AvalonEdit and ICSharpCode.TextEditor, plus samples, are now available via NuGet)
SharpDevelop (aka #develop) 3.0 RTM’s
SharpDevelop for Applications (SDA)
Web Development with SharpDevelop, Web Matrix, and DBGCLR #develop 1.0.2a stopgap release #develop 1.0.2 available for download
SharpDevelop 1.0 Released

Wednesday, December 04, 2013

WiX'ing in VS 2013. WiX 3.8 adds VS 2013 support, bootstrapper and more

InfoQ - Wix 3.8 Adds VS 2013 Support in Votive and WiX Native Library and Bootstrapper Application Functions

Wix, Windows installer package tool, has released version 3.8 with support for Visual Studio 2013 in Votive and WiX native libraries. It includes bootstrapper application functions which extends WixStandardBootstrapperApplication. The release provides an ability to detect Windows 8.1 in Burn in addition to detecting properties in WixVSExtension using Visual Studio 2013.


WiX - WiX Toolset v3.8


The v3.8 RTM build is v3.8.1128.0.

For more information see: and

Major features of WiX v3.8 are:

  • Support for Visual Studio 2013 in Votive and the WiX native libraries. (Bob Arnson and Rob Mensching)
  • Bootstrapper application functions to extend WixStandardBootstrapperApplication. (Neil Sleightholm)

Minor features include:
  • Properly detect Windows 8.1 version in Burn. (Blair Murri)
  • Visual Studio 2013 detection properties in WixVSExtension. (Bob Arnson)
  • fun.AutoVersion preprocessor function to provide automatic version numbers. (Neil Sleightholm)
  • New WixStandardBootstrapperApplication themes. (Neil Sleightholm)
  • Options in CloseApplication to send end-session messages, to be prompted if programs are still running, and to terminate the process if gentler requests are ignored. (Rob Mensching)
  • ThmUtil (and therefore WixStandardBootstrapperApplication) supports hidden controls and transparent images. (Neil Sleightholm and Rob Mensching)
  • LocUtil (and therefore WixStandardBootstrapperApplication) supports probing for default language resources rather than requiring region-specific language resources. (Neil Sleightholm)

The following issues were fixed in WiX v3.8:


Free, open source and powerful, WiX is a seriously powerful setup builder...

Tuesday, November 12, 2013

Wax poetic with this new WiX Setup Project Editor, called, you guessed it, Wax

Wax - The WiX Setup Project Editor

An interactive editor for WiX setup projects.

This tool is a Visual Studio Extension that lets you edit the core part of WiX setup projects - the files to be installed. This is the most fiddling work when creating or maintaining a setup project, so this tool concentrates simply on this task.

Just select the projects that you want to install in the list box on the left side.

Two data grids on the right will show you the target directories needed and files to be installed, and how they are mapped to the file nodes in your WiX setup project.

  • Files that have no corresponding item in the WiX setup project are show in red. You can add the to the setup project by clicking the '+' button in the rightmost column.
  • Files that already exist in the setup project are shown in yellow. You can link them together by clicking the '?' button in the rightmost column.
  • Files that already exist in the setup project but have multiple matches are shown in orange. You can link items together by selecting the proper file from the combo box.



That's always been one of my learning curve issues with WiX that there's no GUI. Yeah, yeah, I know it's supposed to be for uber setups and only noobs need setup building GUI's. Well heck, I guess I'm a noob then!

My name is Greg and I like Setup GUI's! SO THERE!

I just don't build them often enough to have WiX memorized and sometimes I just need a click, click, give me a setup, click, click thing...

Now this project isn't quite that, but it's a good step toward it.

Friday, July 19, 2013

Shining some light on your MSI to WiX conversion with Dark (and this simple UI Wrapper)

CodeProject - Convert VS2008 .msi to WiX project

If you have a setup file (.msi) built with Visual Studio 2008 and you want to create a WiX project to build a Visual Studio 2012 .msi, this article is for you.

Note that this utility is best suited for setup files which are fairly simple and do not have too much customizations involved.


In the below blog, there are steps to extract information from a VS2008 .msi. These manual steps are cumbersome if you have many .msis to be converted. These simple steps are combined into a UI based utility.

Using the code


The UI is self explanatory. The utility does the following: 

  1. Use dark.exe to decompile the .msi to create the .wxs file.
  2. Use dark.exe to extract and rename the binaries (limited set). More customization might be needed depending on the contents of your .msi.
  3. Copy a simple Config.wxi which has relative paths set for the files to be packaged
  4. Copy a sample .wixproj to get started.
  5. Replace '~' in ShortName attributes to '-' to remove warnings 


Geoff's Blog  - Converting a Visual Studio Setup Project to Wix

Anyone who’s using Visual Studio 2012 and either opened up an old solution with a Setup Project (.vdproj) or created a new solution and looked for the setup project under project types will know it’s no longer there and no longer supported. This is not actually that surprising since TFS Build Server and MSBuild doesn’t support the legacy .vdproj files any way.

Wix is the recommended alternative; itis very powerful, but quite complicated to work with and there is currently no GUI.

The .vdproj can’t be converted directly, however one of the wix tools called dark can be used to decompile msi files into wxs xml format.

This is a step by step procedure for converting an MSI with an exe, a number of DLLs and files into a Wix project.



First you know I've got to whine about the dropping of the Setup and Deployment Project types from VS 2012+... whine, whine, whine... Okay, that's out of my system (for now).

Anyway... If you have an MSI that you'd like to WiX'ify, the Dark utility and the two above projects will help.

Wednesday, December 26, 2012

WiX 3.7 released (Think "The MSBuild Everywhere" release) /Blog - WiX v3.7 released.

Happy Holidays! It is my pleasure to announce that the WiX toolset v3.7 is now officially declared Production/Stable. The final build number is v3.7.1224.0. You can download it from here.

From the beginning WiX v3.7 was designed to be short release. It adds a couple small features to Burn that didn't quite make it into WiX v3.6 and fixes a number of bugs that didn't fit in the WiX v3.6 release. The largest change in WiX v3.7 is the complete redo of the build system that eschews NAnt in favor of MSBuild everywhere.

Quick recap:

  • MSBuild-based build system - it's all MSBuild everywhere. Much cleaner, much more robust, much better system to take us forward.
  • Bundle self-update - a BootstrapperApplication can indicate to the Burn engine that a newer version of the Bundle is available so that Burn can download and launch that install instead. You can see this feature in action with the WiX v3.7 install itself. Just grab and older build and watch the button in the left corner.
  • Bundle reference-counting - MSI and (thanks to a bug fix in v3.7) MSP packages are automatically reference counted by the Burn engine. In WiX v3.7 you can specify a stable dep:ProviderKey for your Bundle and other Bundles be able to reference count it. Great if you want to ship redistributables as Bundles. There is a bug open for WiX v3.8 to make this a bit more automatic.


Not a huge, monster update, but IMHO even better because of that. I'd rather an agile like cadence than otherwise...

I've got a strong feeling that I'm going to be revisiting WiX here in the near future [Insert "Setup and Deployment Projects not supported in VS2012" rant here... sigh]

Monday, October 15, 2012

WiX up a quick add-in install with with this "Wix Addin Installer Project Template"

Visual Studio Gallery - Wix Addin Installer Project Template

Wix Template to create installer for visual Studio 2010 Addin project

Wix project template that allow you to create setup deployer for Visual studio 2010 Add-in project. To get it to work you need to update few fields as mentioned inside Product.wxs file.

I have specified the required documentation @end of Product.wxs file. Make changes where ever applicable.

Shikhar is back at it, this time with a WiX Add-in Project Template. Make sure you also check out his with WiX items in the Galley Web Apps Setup Project, Console Apps Setup Project & Wix Artefacts Creator.


Related Past Post XRef:
Making WiX more approachable with the WiX Artefacts Creator for VS2010

Friday, September 28, 2012

Making WiX more approachable with the WiX Artefacts Creator for VS2010

Visual Studio Gallery - Wix Artefacts Creator

"Visual studio 2010 Add-in to create Wix Artefacts

When anyone like me starts working on WIX project, the very first thought comes in mind is that why it’s not simple. Other thoughts to follow may be like why we have to write big XML part manually, specify all the files manually, generate GUID for every single component, documentation is so verbose that it is difficult to grab decent knowledge on this product etc. etc.. 

I thought why creating installer using WIX is not as easy as creating normal visual studio setups. Just add the setup project to solution, select project output and you are done. Hardly one minute work.

After working on Windows Installer XML projects for long time, I realized that it is time to simplify this process. The simplest solution which everyone understands is to provide visual studio setup projects kind of functionality. To facilitate this I have created Visual studio 2010 Add-in which serve the same purpose. Currently this add-in supports setup creation for Web based application (Web application, Web services, WCF services etc.), Console Applications, Class Library Applications and Windows services.

You can find user guide for this add-in @ below location.



I'll be keeping an eye out for the VS2012 version (and/or do the hacks necessary to enable this to install for it ;)

Monday, September 17, 2012

Power your WiX conversion with this VdProj2Wix conversion PowerShell script

InfoQ - WiX – Powerful Deployment For Your .NET Apps

"Visual Studio 2012 gets rid of “VS Setup” projects. However, the WiX toolset provides a strong open alternative for creating your installation packages.

WiX 3.6, which was recently released, includes the Burn bootstrapper/chainer. This means not only can you create installer packages such as MSI files, but can also chain multiple installers (for e.g. to install prerequisites) and provide a much smoother installation experience for your users. The new release also has several new features and fixes over 500 bugs.

What if you are already using VS Setup projects for your products? You can try using this PowerShell script for converting your existing VS Setup projects to WiX format.

Also, instead of editing the XML files in a text editor, you can use Votive - a VS package that lets you write WiX scripts from within Visual Studio and brings benefits such as intellisense, MSBuild support, project templates and more. ..." [GD: Post Leach Level: 90%]

Chris Oldwood - vdproj2wix v1.0


This PowerShell script (vdproj2wix.ps1) is a very simple one for converting a Visual Studio setup project (aka a .vdproj file) into a WiX format one (i.e. a .wxs file). Although there are other more fully featured tools for creating a .wxs file, such as from an existing MSI binary, I wanted something that gave me a bare bones .wxs file that ignored all the boilerplate code that Visual Studio adds by default. As a server-side chappy all the MSI installers I create are simple ones designed to deploy a bunch of files into a folder - this script targets that scenario.

Converting a Setup Project

The script requires just a single argument to run - the path to the .vdproj file that you want to convert. It will create a new file in the same folder with the same name but with a .wxs extension instead, e.g.


I hadn't seen that PowerShell script before... Looks like that might come in handy!

That and I'd not mentioned the v3.6 release (I know, I'm a little behind... ;)


Related Past Post XRef:
Just to reiterate, VS2010 is the last version of Visual Studio to support Visual Studio Deployment Projects
Visual Studio Setup & Deployment Projects declared dead & retired. VS2010 will be the last…

"Visual & Installer" Free Visual Studio Add-in for creating NSIS and Inno Setup installers

WiX rounds the curve and joins Outercurve
An end-to-end WiX example...
Get your WiX fix now on

Wintellect goes GitHub, sharing Paraffin, Wintellect PowerShell, Wintellect VS Cmdlets and more

WiX 3.5 released (Think “IIS7, VS2010, plus bunches of bugs squashed” release)
WiX Resources – Some help up the learning curve
Stick a fork in it, WiX (Windows Installer XML) 3.0 is done…
WiX (as seen in VS2010) Documentation CTP – What is WiX, how to use it, and how to extend it.
More WiX Mixing (WiX, Votive and VS2005/8)
WiX Your Way to Installer Happiness
WixTrim - WiX Designer (with C# 2 Source)
Windows Installer XML (WiX) toolset has released as Open Source on

Thursday, August 30, 2012

Wintellect goes GitHub, sharing Paraffin, Wintellect PowerShell, Wintellect VS Cmdlets and more

John Robbins' Blog - Wintellect Code All in One Place

"We’ve been kind of loose at Wintellect on how we deal with our open source projects. ... We’re hosting on GitHub because we felt it offered the easiest way for people to contribute to the projects. Our first three projects are up and ready for forking and using!


Do you want to make using Windows Installer XML a little easier? Paraffin makes creating and maintaining your file fragments much easier....

Wintellect PowerShell

If you’ve read my blog for more than a few months, you know I’m all about better living through PowerShell. This module contains all the cmdlets from my blog...

Wintellect VS Cmdlets

With Visual Studio 2012 dropping support for macros, what’s a developer who wants to do some simple automation of the IDE supposed to do? Download an SDK, write a VSIX, and have VS debugging VS possibly debugging something? Yeech. I converted all my macros to PowerShell so we can use the NuGet Package Manager Console for those simple extension"


Love companies that encourage and support open sourcing of internal, non-revenue material code (well those that OSS revenue material/generating code are ++, but free isn't free and I'd rather some code than none because they gave everything away and then went away...)


Related Past Post XRef:
Missing Macros in VS11 getting you down? John Robbins shows us how to use NuGet and PowerShell as an replacement

Wednesday, August 15, 2012

WiX rounds the curve and joins Outercurve /Blog because setup isn't just xcopy - Outercurve Foundation and WiX toolset together, at last.

The WiX toolset was Microsoft's first Open Source project released back in April, 2004. Being first meant we were guinea pigs for a number of new legal and business processes. By 2009 Microsoft had learned a lot about these processes and created the Outercurve Foundation to encapsulate them. Today the WiX toolset finally moves from Microsoft to join Outercurve. Why now? What changes? Let's see if I can answer those questions.

Why now?

Since the creation of the Outercurve Foundation, people occasionally asked why the WiX toolset didn't move. There wasn't a really great answer beyond, "We didn't really need to." The original processes in Microsoft were supporting our needs well enough. Well enough until the end of last year when the legal team supporting us said, "It's been fun guys but we don't really want to manage the WiX toolset assignment agreements any longer."

That meant it was time to move to Outercurve. Of course, it is never that simple when you have legal processes involved. So the process took time. I'm just happy we got this done before WiX v3.6 was complete and WiX v3.7 available.

What changes?

Right now, the WiX toolset's copyright changes. The header on top of all the licensed source files and the logo message displayed by the command-line tools will now say "Copyright Outercurve Foundation" instead of "Copyright Microsoft Corporation". There is also a new email address to request an assignment requests agreement (send email to to get started).


Outercurve Foundation Blog - WiX joins the Outercurve Foundation

"I am very happy to announce the WiX toolset has been contributed to the Outercurve Foundation. The project has been a special case in Microsoft for a long time. WiX was the first open source project begun at Microsoft. We began as an internal ‘community project’ in 1999 and released WiX as the first true open source project from Microsoft in 2004.

The WiX toolset creates Windows Installer packages (.MSI, .MSM, .MSP, etc.) from XML source code. The toolset integrates seamlessly into typical developer processes via command-line tools and Visual Studio integration. The project also extends the Windows Installer to support install applications on IIS, SQL, and other Microsoft platforms. The primary goal of the project is to promote best practices for creating installation packages on Windows.

Since the 2004 release, the WiX toolset has become recognized as one of the best ways to create installation packages for Windows. Today there are 10,000+ downloads every month. WiX is one of few open source projects shipping with multibillion-dollar software. It’s used in Microsoft Office, SQL Server, Visual Studio and many others inside and outside of Microsoft. Developers are our implementers. The project has an active user mailing list with thousands of participants.


It's great to see continued life and support for WiX. With VS2012 RTM coming to MSDN today (August 15, 2012), I believe there is going to a renewed interest is deployment/setup projects (since you know the VS Deployment Project type has been dropped from VS2012, right?)....


Related Past Post XRef:
Just to reiterate, VS2010 is the last version of Visual Studio to support Visual Studio Deployment Projects
Visual Studio Setup & Deployment Projects declared dead & retired. VS2010 will be the last…

"Visual & Installer" Free Visual Studio Add-in for creating NSIS and Inno Setup installers

An end-to-end WiX example...
Get your WiX fix now on

WiX 3.5 released (Think “IIS7, VS2010, plus bunches of bugs squashed” release)
WiX Resources – Some help up the learning curve
Stick a fork in it, WiX (Windows Installer XML) 3.0 is done…
WiX (as seen in VS2010) Documentation CTP – What is WiX, how to use it, and how to extend it.
More WiX Mixing (WiX, Votive and VS2005/8)
WiX Your Way to Installer Happiness
WixTrim - WiX Designer (with C# 2 Source)
Windows Installer XML (WiX) toolset has released as Open Source on

Friday, February 24, 2012

An end-to-end WiX example...

Ayobami Adewole - Building Installation Packages with Windows Installer XML

"A while ago, I needed to package and deploy an application and I did not want to use Visual Studio Setup and Deployment, I opened my firefox and decided to look for an alternative, what I got is WIX, windows installer xml.

So, I did some background check about WIX and I found out that its the right tool for what I needed to do, because it gives me full control as a developer to determine how my application is going to be installed on the clients' machines and gives full unrestricted access to Windows Installer functionality, but the learning curve associated with it is much and knowledge of xml is a prerequisite.

WIX is a free open source toolset that is used to build Windows installation packages from XML source code, originally it was developed by Microsoft but its now being maintained by Rob Mensching. It is written in C# and WIX itself is much like a programming language, but nothing to worry about, because with the knowledge of xml, the problem is half solved.

Now, dont let me bore you and lets get started, in this post, I am going to use WIX to deploy a c# contact manager application that saves and retreives data from an SQLite database. First of all you need to download the WIX toolset which contains visual studio plugin that install WIX project templates into visual studio, download the binaries here. After installing the toolset, it will install templates like this into visual studio.



WiX has this weird little place in my heart from some reason. Maybe because it was the "new In the box setup solution for Visual studio that wasn't." Maybe because I really dig the idea of a declarative setup solution. Maybe it's because I have less than warm fuzzy feelings for the other packages that hide too much behind a GUI. Maybe I'm just freak...Who knows.

Anyway, been a bit since I've mentioned WiX here and thought this end-to-end post was a great example of it...

Saturday, January 21, 2012

Get your WiX fix now on /Blog because setup isn't just xcopy - The online.

"It is with great pleasure that I announce the WiX toolset's new home is fully operational: This site is now our central hub for information about the WiX toolset. We will consolidate the WiX content that makes sense and link to the WiX content hosted elsewhere. The most important feature back online right now is the weekly releases.

For a long time, the domain served as a placeholder for what finally launched today. ..."

WiX Toolset 

The WiX toolset builds Windows installation packages from XML source code. The toolset integrates seamlessly into build processes.


WiX Toolset  - About

About the WiX toolset

WiX--the Windows Installer XML toolset--lets developers create installers for Windows Installer, the Windows installation engine.

  • The core of WiX is a set of build tools that build Windows Installer packages using the same build concepts as the rest of your product: source code is compiled and then linked to create executables; in this case .exe setup bundles, .msi installation packages, .msm merge modules, and .msp patches. The WiX command-line build tools work with any automated build system. Also, MSBuild is supported from the command line, Visual Studio, and Team Build.

  • WiX includes several extensions that offer functionality beyond that of Windows Installer. For example, WiX can install IIS web sites, create SQL Server databases, and register exceptions in the Windows Firewall, among others.

  • With Burn, the WiX bootstrapper, you can create setup bundles that install prerequisites like the .NET Framework and other runtimes along with your own product. Burn lets you download packages or combine them into a single downloadable .exe.

  • The WiX SDK includes managed and native libraries that make it easier to write code that works with Windows Installer, including custom actions in both C# and C++.

Good to see the steady movement and growth of WiX...

Thursday, March 17, 2011

Just to reiterate, VS2010 is the last version of Visual Studio to support Visual Studio Deployment Projects

Just to re-iterate last year's post,Visual Studio Setup & Deployment Projects declared dead & retired. VS2010 will be the last…, Visual Studio Deployment projects are EOL'ed. VS2010 is the last version that will support them.

Buck Hodges - Visual Studio setup projects (vdproj) will not ship with future versions of VS


The Visual Studio setup projects will not ship again – VS 2010 was the last release with support for it. So, you’ll want to make plans to migrate to something else. Of course, I’d suggest looking into WiX, and there are other options as well. The MSDN page Choosing a Windows Installer Deployment Tool contains a table showing a comparison of VS setup projects, WiX, and InstallShield Limited Edition.

Caution noteCaution

Future versions of Visual Studio will not include the Visual Studio Installer project templates. To preserve existing customer investments in Visual Studio Installer projects, Microsoft will continue to support the Visual Studio Installer projects that shipped with Visual Studio 2010 per the product life-cycle strategy. For more information, see Expanded Microsoft Support Lifecycle Policy for Business & Development Products.



Every time I hear this or think about this, that in VS.Next we're not going to get a means to build a setup/installer/MSI in the VS box just pisses me off. What the heck is an uber development environment worth if we can't easily deploy our apps? We need a third party project to create MSI's, "Microsoft Installer" files (the irony in that kills me)? We'll need to download and install something to build installers (again the irony...)?

Is Microsoft saying that MSI/Setup's are dead? That we won't need them any more? That we're going to get something better? Are we just getting part of the story? Damn, I sure hope so.

I'm not saying that third party products are bad (not at all as I dig WiX), but for simple, quick and easy Setups/MSI's it's hard to beat Visual Studio Deployment Projects. Can we at least get a hint that we're going to get more information at MIX/TechEd/PDC about this? The echoing silence around this bugs me.



Monday, January 31, 2011

WiX 3.5 released (Think “IIS7, VS2010, plus bunches of bugs squashed” release) /Blog - WiX v3.5 released.

“It is my pleasure to announce that WiX toolset v3.5 is now officially declared Production/Stable. The final build number is 3.5.2519.0. You can download it from here.

WiX v3.5 delivers official support for Visual Studio 2010 and IIS7. The standard UI also supports a quite few more languages (but not all of those) and we simplified the WiX language a bit. Plus there are a bunch of bug fixes in WiX v3.5 that makes this release the best version of the core WiX toolset ever released.


WiX is one of my favorite Setup/MSI building tools. Been a bit since the last release of WiX so I’d like congratulate the team and thank them for keeping it alive…


Related Past Post XRef:
WiX Resources – Some help up the learning curve

Stick a fork in it, WiX (Windows Installer XML) 3.0 is done…
WiX (as seen in VS2010) Documentation CTP – What is WiX, how to use it, and how to extend it.
More WiX Mixing (WiX, Votive and VS2005/8)
WiX Your Way to Installer Happiness
WixTrim - WiX Designer (with C# 2 Source)
Windows Installer XML (WiX) toolset has released as Open Source on

Tuesday, April 27, 2010

Start your NGen… A four part NGen walk through

JIT, NGen, and other Managed Code Generation Stuff - NGen: Walk-through Series

“Now that Microsoft Visual Studio 2010 has shipped, we thought it would be a good time to publish a series of articles focused on how to use the NGen technology and how to measure performance benefits from it. This series features hands-on style content, so get your copy of Visual Studio 2010 installed and you’ll be ready to follow along.

The following topics will be covered in the 4 blog posts that make up this series.

       1. NGen: Getting Started with NGen in Visual Studio
       2. NGen: Measuring Warm Startup Performance with Xperf
       3. NGen: Measuring Working Set with VMMap
       4. NGen: Creating Setup Projects


JIT, NGen, and other Managed Code Generation Stuff - NGen: Getting Started with NGen in Visual Studio

“Hey there managed code developer. So you’d like to test drive the NGen technology in the .Net Framework? This article will walk you through how to use NGen for your existing solution in Visual Studio 2010.

To familiarize yourself with the concepts around NGen (how it works and for what style of application/library it makes sense to use), I strongly encourage you to first read through this excellent MSDN CLR Inside Out article around the Performance Benefits of NGen: Now assuming you have some background on when to use NGen, let’s get started. I’m assuming you have identified that NGen will likely benefit your application (perhaps your application has been identified as having poor warm startup due to JIT-ing of method calls OR you are working with a library that gets loaded into several processes on a machine and you would like to reduce the library’s impact on the total working set of the machine.)

For the purposes of this walk-through, I assume you already have a Visual Studio solution for your application. This series of steps will provides guidance on how to invoke NGen for your application from within the Visual Studio solution. Using NGen via the set of steps outlined below will result in native images created only on the specific machine where the steps are run. Note also that this article does not provide instructions on how to invoke NGen in an installer package; a future article will talk about that scenario.

image …”

JIT, NGen, and other Managed Code Generation Stuff - NGen: Measuring Warm Startup Performance with Xperf


This article is part of a series of blog posts intended to help managed code developers analyze if Native Image Generation (NGen) technology provides benefit to their application/library. NGen refers to the process of pre-compiling Microsoft® Intermediate Language (MSIL) executables into machine code prior to execution time.

Startup time is defined as the time it takes for an application from launch to startup such that it is now responsive to user input. It is typically thought of as having two variants, cold startup and warm startup. The time it takes for an application to start up on a machine that has just been booted is typically referred to as cold startup time. The time it takes for the application to start up on its second launch is referred to as warm startup time. The difference between the two is that cold startup time is bound by the need to fetch pages used by the application from disk. In contrast, warm startup is typically only bound by the work the application (and underlying runtime layer) needs to do to start up, since the pages needed by the application under normal circumstances don’t need to be fetched from disk.

Using native images does not necessarily shorten cold startup time since the native image files are significantly larger than their corresponding IL files and may take longer to pull from the disk. We will not talk about cold startup time in this article although that may be a topic we address in a future post. Loading native images however, can help shorten application warm startup time since the CLR does not need to run the JIT compiler on the managed assemblies at application launch time. This article is a walk through to help developers use publicly available tools to evaluate how much warm startup benefit the application will see if NGen were to be used.

We will look at two contrasting scenarios to measure warm startup time, the first will involve an application where most of the managed assemblies being loaded have native images and the second one will involve the same application where most of the managed assemblies will NOT have native images.

image …”

JIT, NGen, and other Managed Code Generation Stuff - NGen: Creating Setup Projects


The NGen technology is designed to be used during the installation phase of a managed application or library. This article will talk about the various installer technologies available, which one to choose, and how to invoke NGen given that installer technology.

Installer Toolsets

The fundamental thing to know before we take a look at installers is that NGen is a tool that can be run only with administrator privileges. A non-admin user cannot invoke NGen.exe. This means that any installer technology that cannot run with administrator privileges cannot be used to invoke NGen easily. Non-admin installer technologies like ClickOnce sometimes use an MSI wrapper to invoke administrator-only actions like NGen.

There are several tools available to create a Windows Installer file (MSI file) – Visual Studio Setup and Deployment Projects, Install Shield 2010 Limited Edition, Windows Installer XML Toolset (WiX), etc. This MSDN article gives a breakdown of how these tools compare: For a simple project which just installs a few binaries, the Visual Studio Deployment Project is easy to ramp up on and can quickly produce a workable package. However, for production quality applications, WiX tends to be the installer toolset of choice. Among other benefits, WiX has MSBuild support (which implies you don’t need to install Visual Studio in order to create a setup package) and stores all data in XML files (which makes it easily editable).

The rest of this article will focus on using NGen via the WiX toolset.



NGen is an unsung hero of the .Net Framework and one that I’d like to get to know better…


Related Past Post XRef:
NGEN is Love, if you’re running your .Net applications via Citrix or Terminal Services
Making VS2010 and/or your WPF applications happy in Remote Desktop/RDP Land
CLR 4 Team videos and a little Inproc SxS thrown in for taste
101 Samples for Visual Studio 2005 (And actually all 101 now...)

Thursday, December 10, 2009

Windows 7 Create Install from USB from DVD (WUDT) tool re-released and again available (and with source)

Port 25 - Windows 7 USB/DVD Download Tool Released Under GPLv2

“I am very pleased to announce that Microsoft today released the Open Sourced Windows 7 USB/DVD Download Tool (WUDT) under the GPLv2.

As we previously explained, the testing and localization took longer than we expected, but the project is now hosted on, Microsoft's Open Source software project hosting repository, and the code can be found here

The tool can also now be downloaded from the Microsoft Store here.

Also, as a result of some necessary changes, while the user experience of the tool will be the same as before, the install involves additional steps.


CodePlex - Windows 7 USB/DVD Download Tool

“The Windows 7 USB/DVD Download tool allows you to create a copy of your Windows 7 ISO file on a USB flash drive or a DVD. To create a bootable DVD or USB flash drive, download the ISO file and then run the Windows 7 USB/DVD Download tool. Once this is done, you can install Windows 7 directly from the USB flash drive or DVD.

The ISO file contains all the Windows 7 installation files combined into a single uncompressed file. When you download the ISO file, you need to copy it to some medium in order to install Windows 7. This tool allows you to create a copy of the ISO file to a USB flash drive or a DVD. To install Windows 7 from your USB flash drive or DVD, all you need to do is insert the USB flash drive into your USB port or insert your DVD into your DVD drive and run Setup.exe from the root folder on the drive.

Note: You cannot install Windows 7 from the ISO file until you copy it to a USB flash drive or DVD with the Windows 7 USB/DVD Download tool and install from there.

The copy of the ISO file that the Windows 7 USB/DVD Download tool creates is bootable. Bootable media allows you to install Windows 7 without having to first run an existing operating system on your machine. If you change the boot order of drives in your computer's BIOS, you can run the Windows 7 installation directly from your USB flash drive or DVD when you turn on your computer. Please see the documentation for your computer for information on how to change the BIOS boot order of drives.” [GD: Project Description Leached in Full]

Windows 7 USB/DVD Download Tool - 1.0

“… Released: Dec 9 2009

Updated: Dec 9 2009 

Dev status: Stable

Downloaded: 11585 downloads

application, 2658K, uploaded Wed  - 7421 downloads

Other Available Downloads
source code, 2167K, uploaded Wed  - 1555 downloads

application, 2873K, uploaded Wed  - 1210 downloads

application, 2658K, uploaded Wed  - 32 downloads

application, 2658K, uploaded Wed  - 216 downloads

application, 2882K, uploaded Wed  - 202 downloads

application, 2893K, uploaded Wed  - 174 downloads

application, 2863K, uploaded Wed  - 36 downloads

application, 2865K, uploaded Wed  - 700 downloads

application, 2848K, uploaded Wed  - 13 downloads

application, 2872K, uploaded Wed  - 26 downloads

The Windows 7 USD/DVD Download Tool uses material from ImageMaster, a .NET C# application for reading and writing disc images (*.iso files). ImageMaster
is licensed under the terms of the GPL. For more information about ImageMaster, please see

This project uses the WIX Votive plugin for Visual Studio 2008. Please see for installation instructions.

To build in Visual Studio 2008:


A number of cool points here;

  • Source! :)
  • Localized versions, including resources for install/source
  • Wix
  • Build instructions
  • Source!

Here’s a quick snap of the expanded source zip;



Related Past Post XRef:
Win 7 USB/DVD utility to be re-released next week, this time under GPLv2 (yes, that means source too)

Monday, September 14, 2009

Have VS 2008 SP1 and a Data Dude/WiX/SilverLight Project and the right-click Create Unit Tests wizard is “borked?” There’s a hotfix for that…

Microsoft Help and Support - FIX: Problems occur in the Create Unit Tests wizard when you create a unit test for a method in a solution that contains a GDR project, a Silverlight project, or a WIX project in Visual Studio 2008 Service Pack 1

“Consider the following scenario. You open a solution that contains one of the following projects in Microsoft Visual Studio 2008 Service Pack 1:

  • A Microsoft Visual Studio 2008 Team System Database Edition General Distribution Release (GDR) project
  • A Microsoft Silverlight project
  • A Windows Installer XML (WIX) project
Then, you open a source file, right-click a public method, and then select the Create Unit Tests item. In this scenario, the Create Unit Tests wizard starts. However, the following problems occur in the Create Unit Tests wizard:
  • There are no type lists in the Types panel.
  • The Output project list is missing.
  • When you click the Settings button, the wizard closes immediately.
  • The OK button is unavailable.


This is something I think we’ve seen (at least I know I’ve heard the team mention “WiX” and problems with Unit Testing in same sentence… Am confirming now) and given my interest in WiX and Data Dude I wanted to capture this for future reference…

(via /Blog - Fixing Unit Tests in VS2008 SP1 with the WiX toolset.)

Wednesday, July 08, 2009

Stick a fork in it, WiX (Windows Installer XML) 3.0 is done…

Aaron Stebner's WebLog - Final version of WiX v3.0 now available for download

“Over this past weekend, the 3.0.5419 build of WiX v3.0 was declared the final production build.  If you are using any builds of WiX v3.0 for your projects, I strongly encourage you to update to the 3.0.5419 build at this time.

Here is some additional information about WiX v3.0 and the final 3.0.5419 build:


Windows Installer XML (WiX) toolset

“WiX v3.0 released.

July 4th, 2009

The final build of WiX v3.0 has been released. You can download it from Read more about the release by Rob and Bob.


SourceForgeWiX Files


WiX is one of of my favorite Windows Installer projects. Why? I dig how it’s XML driven. There’s no hidden magic, munging or mumbo-jumbo. It’s all there, in the XML. Meaning it can be easily tweaked with any tool or means/method that can tweak XML, from Notepad to MSBuild.

I did think it was a shame that it was pulled from VS2010. We really need a professional means to create MSI’s baked into Visual Studio and I thought this would be it. The existing Visual Studio Setup Projects are okay and great for simple stuff, but when you need to programmatically modify the setup or go beyond what’s there, then it’s kind of a brick wall.

Anyway, if you’re building setup packages, need to move beyond what comes with Visual Studio and don’t want to pay for a third-party product then you need to check out WiX.

(via Jason Haley - Interesting Finds: July 7, 2009)


Related Past Post XRef:
WiX Resources – Some help up the learning curve
WiX 3 is now officially in “Beta”