views:

667

answers:

3

Hello everyone,

We have a web application that until now installed under the "Default Web Site" in IIS. A customer now wants us to install it under a different web site, and we want to do that from the installer. My question is in 2 parts: A) How do I programatically add another web site alongside the 'default web site'? B) We are using Windows Installer - is there a way to trigger whatever code I write for section A from within the installer in time for the installation to take place at the new location? It looks like overriding Install() is too late in the game...

+1  A: 

If you're using WiX to create your MSI, see this question.

Anton Gogolev
Nope, no WiX here, just basic Windows Installer (oh, the joy... not.)
Eran Rehavi
A: 

Not really an expert at MSI files, but you can add a website through scripting using adsutil.vbs. Poor man's way to handle this is to have your installer drop the files at a location without creating a website then run a later step with the script to create a website with the root at this location. Bonus points for making this optional for nudgy IIS admins like myself who hate installers touching IIS at all.

Wyatt Barnett
+2  A: 

we use a js windows script to update our virtual directories between branches, I would imagine that you could use the same objects to create a website

var iisPath = "IIS://localhost/W3SVC/" + siteID;
var site = GetObject(iisPath);

Microsoft has a fairly extensive article on configuring IIS 6 programatically. As long as your MSI can call a batch file, this article should help out.

This article also has a complete script file that creates a website.

Jeff Martin
I guess I assumed that the website was C# not the requested Program. However, there is no reason these objects can't be used in C#.
Jeff Martin