I’ve just tried out creating a virtual directory with Wix and there’s really not that much too it, there’s a couple of places where the syntax isn’t that intuitive but the compiler nudges you in the right direction. I thought I’d share my experience anyway as the Wix post seem quite popular and it’s often nice to have a template to start from if you’re setting out to do these things.
There’s just three parts to it, first you create the files for you’re website in the location of you’re choosing. Something like this:
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="InstallDir" Name="TEST" LongName="Test" >
<Component Id="default.htmlComponent" Guid="af0b56d1-7660-4172-9f16-a4e29d343341">
<File Id="default.htmFile" Name="DEFUALT.HTM" LongName="default.htm" KeyPath="yes" DiskId="1" src="default.htm" />
Then create the entries for the virtual directory itself, you don’t really need the “WebApplication” node but most of the time when you create a virtual directory you create it in its own application.
<Component Id="TestWebVirtualDirComponent" Guid="054604ca-1790-4c0c-b076-531ff9a5b374">
<WebVirtualDir Id="TestWebVirtualDir" Alias="Test" Directory="InstallDir" WebSite="DefaultWebSite">
<WebApplication Id="TestWebApplication" Name="Test" />
Finally you need an entry to reference the web site itself; because you don’t want this to be created it is placed under the product node. Not much to say about this, except you need the “WebAddress” node even though it doesn’t really provide any extra info.
<WebSite Id="DefaultWebSite" Description="Default Web Site">
<WebAddress Id="AllUnassigned" Port="80" />
As discussed in a pervious blog post you will need to include the wix server custom actions for this to work correctly.
The only real problem I found was that it only seems to work with IIS 6.0, installing on an IIS 5.5 machine gives the rather cryptic error “Product: Test Virtual Dir -- Error 1316. A network error occurred while attempting to read from the file: C:\wixinstalls\virtualdir\output\testuser.msi”. I’ll be reporting this to the bug tracking tool, so I guess we’ll soon find out weather this is a bug or a feature.
Download the complete source here.