PDA

View Full Version : Modify IIS using a transform



richardh
09-09-2011, 03:23 AM
Here's a simple question that's been bugging me for a while, as I can't find any way of doing this:

Is it possible to modify IIS (i.e. add a virtual directory) via a transform? I have an MSI that creates a website, app pool & virtual directory. I'd like to create a transform (MST) that adds an extra virtual directory to that website.

Seems simple...:confused:

richardh
09-12-2011, 08:09 AM
Really ? Read 63 times and no reply?

Cary R
09-12-2011, 12:29 PM
We don't expose that view in a transform, so you'll have to directly edit the tables.

I believe in the latest version of InstallShield these tables would be the ISIIS* tables. Since we don't document these, you'll have to do a bit of reverse engineering to figure out what you should populate them with. To that effect, I'd recommend:

1. Convert the original MSI to a Basic MSI project file using the Wizard mode of InstallShield (file -> Open -> Open As -> Wizard)
2. Make the changes to the converted project, since you'll then have an IIS view
3. Build the new MSI
4. Use MsiDiff (tools -> Difference -> MsiDiff) to see what changes got made to the tables.
5. Recreate those changes in the *.mst file.

This way, you don't end up with a vendor-modified package, and you can get a good idea of what settings to tweak if you have to do this again. Note that this will only work if the package was created in a similarly new version of InstallShield, since older editions used slightly different tables and values in those tables.

Also, this won't really work if there's no IIS functionality in the package, since no custom actions and ISIIS tables will have been inserted, and this is a lot more work to insert with an *.mst (although not impossible).

In any case, there's a good reason why the IDE doesn't support this for direct MST mode. =)

richardh
09-13-2011, 10:21 AM
Thanks for the reply Cary - I hadn't thought of looking directly at the IIS* tables. I'll give it a go and see how far I get :)

richardh
09-14-2011, 06:34 AM
Thanks for the reply Cary - I hadn't thought of looking directly at the IIS* tables. I'll give it a go and see how far I get :)

Yep - works a treat :) Thanks again Cary