Hi, I'm Ron Cormier. I'm the owner of a small software company where I design websites and build reusable web applications.

This blog is a work in progress but I plan on writing about website development, software design, information technology, and some of the projects I'm working on for Communicate Solutions. Check out my company's website, Communicate Solutions.com.
Sign in

Tags


So, as I mentioned in my last post, I've been  working on authoring a Windows Installer package for ePortfolio using WiX.  It has been an interesting experience.  Here's a short list of advantages/disadvantages:

Advantages:

  1. XML schema describes itself well and is well suited to this sort of authoring.
  2. Much more control over the features/functionality available in the installation package.
  3. Fairly active user community.

 

Disadvantages:

  1. Most of the documentation was written for WiX v2.x.  The current WiX version is 3.0.4318.0.  While the core seems to have remained stable, many of the supporting features are not well known/documented.
  2. Steep learning curve for those who aren't familiar with Windows Installer technology (MSI). 
  3. IIS virtual directory installation is severely lacking, particularly for XP machines.

 

I should expand on the third disadvantage.  In WiX, there are three things that identify a website in which you want to create a virtual directory: an IP address, port, & host header name.  If you want to create a virtual directory under an existing website, you need to specify each of those three pieces of information.  Pretty simple, right?  Well it is fine for production websites running on the Windows Server operating system since multiple websites can be running at the same time, and, since they're production websites, they can easily be configured to use host header names.

The problem is on my development machine, which is Windows XP Pro SP2.  First, on XP, you can't have more than one website running, so it's pointless for each website to have it's own host header name.  For example, when I'm working on client X's website, I start the website in the IIS snap-in and browse to http://localhost.  When I need to work on client Y's website, I stop Client X's website and start Client Y's website with the snap-in and again browse to http://localhost.  I imagine this is how most developers work; am I wrong?  Leave a comment below to let me know...

Given this XP scenario, the three WiX parameters aren't enough to identify a particular website since none of the websites use a distinguishing host header name.  WiX simply installs the virtual directory into the default website; it doesn't know what else to do! Yell  I understand that I could add a hosts file entry for each environment but that's something else I'd have to manage on my machine and my clients' machines.

To get around this shortcoming, I needed to break out my C++ IDE to write some custom actions.  In the end I need virtual directory creation to work on both XP & Server 2003.  The result was a solution which is similar to the installer packages created by Visual Studio.  It was a lot of work to achieve the default behavior, but I now have full control of the source code and understand what's going on behind the scenes.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Related posts

Comments

Add comment


 

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]