May 16, 2006

InstallerMaker for Windows

Since my last blog entry, I have been working on a system to facilitate the creation of Windows installers for Mono developers. The original intention was to create this functionality and aggregated to the VSPrj2make Visual Studio Add-in that I maintain.

However, it occurred to me while creating the driver application for testing and debugging -- makes it a lot easier during the development process, rather than debugging live COM servers written in .NET that run inside Visual Studio :) -- that I could work just a bit more and also release a product that could be used independent of Visual Studio.

The spawn of my efforts is now called InstallerMaker. Although this is a new born baby, it is already capable of creating stand alone Windows installers for executable assemblies. It is quite capable for Gtk# as well as WinForms application that you want to redistribute to non developers to use. Resulting installers will create Start Menu entries and will check for the existence of the required runtime components that the programmer designing the installer selects. If for example, the application being deploy was identified as requiring Gtk# Runtime Installer for .NET to be installed and it is not present during installation, it will alert the condition and even offer to begin a download so the prerequisites can be satisfied and the installation can then be successfully retried.

Should an application be identified as one to be ran with the Mono Runtime for Windows, then the Start Menu short cuts that are created will make use of monoLaunchW so that finding and launching Mono's runtime is automatic. Incidentally, I have taken a very early first stab at creating a Mono Runtime Installer for Windows. It is not made out of the latest and greatest versions of Mono and its associated technologies but it does promise to allow the running even of Gnome# applications in Win32.

I have put together six screen cast that can be viewed with a web browser capable of showing Shock Wave videos. To better get a sense of what InstallerMaker is and how one could use it. Follow the videos in order and read the captions on the web pages framing the video playback:

  1. Obtaining InstallerMaker, Installation, First Run and Configuration
  2. Building a Release Version of your Project
  3. Loading the csporj file and Running the Script Creation Wizard
  4. Revising Values and Observing When the Script Files is Actually Created
  5. Inspecting the Resulting Script File and Compiling
  6. Compiling and Running the Installer for the First Time

You can find the InstallerMaker program and its source code Novell Forge.

The next mini release that I make of InstallerMaker will add support for Asp.NET projects so that one can deploy solutions that are served by XSP in Windows.

Hope this is usefull. Please leave me your feedback so I can decide if this is worth the effort.

Posted by martinf at May 16, 2006 05:54 PM
Comments

Great stuff! This will make distributing mono apps much easier to "grandma".

I wish Apple would jump in to the mix and help mono along on OSX so we can see some leaps and bounds there.

Posted by: Kiel at May 16, 2006 06:44 PM

One slight question, would WiX have helped you in this regard? Just curious cause after looking at the demonstration they did on Channel9 I find the project pretty interesting and full featured. Just curious our your thoughts. If you had looked at it what were the things you thought were missing.

Posted by: Richard at May 16, 2006 11:51 PM

Excellent stuff. This is just what I need for my deployment.

What would be even nicer was if it would download and execute without requiring their intervention. I couldn't find anything about a silent install for gtk sharp runtime. So I guess that's out of the question.

Keep up the good work.

Posted by: Martin at May 17, 2006 02:25 PM

I see you maintain VSPrj2make.. I've tried to use it at work, but it only works on VS.net 2003.. At work i code in c#, but for Linux-deployments only.. But there isn't a single half-decent IDE for mono on Linux.. VS.net really rules that area.. I'm creating webservices which really just adds to the problems.. Any plans on porting your app to vs.net 2005?

Thanks!

Posted by: Bart Verwilst at May 17, 2006 05:17 PM

Se ve muy bien!! no he tenido tiempo de probarlo pero se ve que has hecho un gran trabajo!

:)

Posted by: Julio at May 18, 2006 01:53 PM

It's aok as long is it creates MSI packages. They are the only really easily deployable packages.

They install fine on home user setups, any AD alone can force their installation automatically to all the workstations, SMS/MOM handle them.

If you're doing any "binary home made installer", just drop the projects. It's horrible and the installers are lame. Especially for professional use.

Posted by: Foibail at May 19, 2006 12:26 PM

Is this project aimed only to mono .net runtime ??. I have MS .Net runtime and the installation went well but when i tried executing the binary, it crashed.

Posted by: vikramjb at May 24, 2006 01:07 AM