ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

Monday, October 21, 2013

IsWiX 22.13293.1 Released

I always liked the  Code View / Design View patterns in Visual Studio so I choose to emulate this in IsWiX.  Another aspect of this is to have one source file maintained by a code emitter and another source file maintained manually by the developer using a text editor.  Think  Foo.cs and Foo.Designer.cs  in Winforms or  XAML / CS in WPF.

Usually you can mark up IsWiX authored XML without problems ( add various element such as ServiceInstall, ServiceControl, ShortCut and so on )  but sometimes you need to add an element that might cause IsWiX issues ( Component typically ) or that you want to really add a lot of custom action elements and related sequencing and you really want that code in another file for readability.

To solve this problem I like to create a second .wxs file and use the Fragment element.  Then with the use of ComponentGroup, ComponentGroupRef, DirectoryRef, Directory and Component elements you can tie the two together.   This is sometimes a little hard to explain to a new WiX developer so I decided to make this the default experience in IsWiX merge module projects going forward.   With that said, go check it out here.

Friday, September 27, 2013

IsWiX 2.1.13270.1 Released

As I promised in my earlier blog post today,  IsWiX 2.1.13270.1 is released and be found on CodePlex here.

This release adds support for Microsoft Visual Studio 2013 RC.  The IsWiX Setup and IsWiX Merge Module projects will show up in File | New | Project just as soon as WiX 3.8 supports VS 2013.  Or can follow my instructions linked in my previous blog post.

WiX / IsWiX support for VS 2013 RC

Visual Studio 2013 is set to GA next month and RTM in November.  Based on blog posts and mailing list messages, it seems that the WiX team is now struggling to meet their schedule of a WiX 3.8 beta release with VS 2013 support by Halloween and a final release by the end of the year.  You can read more about it here and here.  My guess is that with Rob leaving MSFT and the DevDiv embracing InstallShield LE that they aren't getting the VS team support anymore.

I've taken a look into what it would take and my initial impression is that there isn't any difficult VSIX work.  A WiX setup developer with C++ expertise should be able to knock this out for them.  Hopefully John Cooper will be able to step up as he has offered.  If not, please consider jumping on the wix-devs list and see what you can do.

That said, I've done some prototyping using manual steps and have come up with some procedures to get WiX 3.7 working on VS 2013 RC.  You can read those steps here.

I have also gone ahead and made all the changes needed for IsWiX to work on VS 2013 RC.  Basically IsWiX interacts with Visual Studio in two ways.  The first is a Tools menu bar AddIn.  To make this work I simply update the AddIn XML to declare that I support VS 2013.   No other code changes are needed as the integration is very simple and no other code changes are required.

The second interaction is that IsWiX leverages WiX infrastructure to provide two additional project template types.  They are very similar to the WiX project types but more built out for a specific purpose. (Convention over configuration covered in my last blog post.)  To get this to work I merely updated the IsWiX installer to locate the location of VS2013 and copy the project template zip files to the right directory followed by a call to devenv /setup.  No other changes were required.

  The problem is that if WiX isn't properly registered with VS 2013 then the IsWiX project templates won't show.   There is no error per say... they just don't appear.

Hopefully WiX 3.8 will be released soon with VS2013 RC support.  In the mean time I will be releasing a new version of IsWiX this weekend with my pieces completed.

Until then, my general recommendation is to never use project references and keep your installer projects and your application projects in different solutions.  This way you don't box yourself into a corner if some of your projects are ready to upgrade and others are not.

Sunday, January 13, 2013

IsWiX 2.0.13013.4 Released

IsWiX 2.0.1310.4 has been published on CodePlex.  I've added two new Visual Studio Project Templates that go beyond what WiX proper provides.  These templates along with the WiX designer allows for fast and simple MSI creation using the following simple steps.

1) Create an IsWiX Setup Project and VS Solution.  Example: Notepad
2) Add a new IsWiX Merge Module Project. Name it the same as the project in step 1 except add MM to it.  Example: NotepadMM
3) Add the IsWiX Merge Module Project as a reference to the IsWiX Setup Project.
4) Take a look through the source for any other changes you may need such as CompanyName, EULA, Banner and Dialog Bitmaps.
5) Use IsWiX to author your files into the IsWiX Merge Module Project.
6) Author additional meta into the IsWiX Merge Module Project that's not supported by IsWiX yet.

I've been able to use this process to create a C# Windows Service, create the installer and set up a CI build using Team Foundation Service.  This installer is fully versioned and supports major upgrades. The amount of time needed to author and test is less then 10 minutes!  Here is a short video ( no sound ) to demonstrate.