PDA

View Full Version : Adding .NET to MSI / MST



Muten Roshi
11-08-2006, 12:38 PM
Hey all,

I got an MSI application that i need to install. I already created the MST for it and is working, but it requires .NET framework version 1.1 on the computer.

I have created an MST for the .NET as well, but was wondering if there was any possible way to add in the .NET to the MST like a Merge Module instead.

Any Help would be MUCH appreciated!! Thanks.

Cary R
11-09-2006, 03:49 PM
While there are things that could be done to try and hack this, I wouldn't recommend it. If you are including .Net Assemblies in your installation, Windows Installer actually talks to the framework when installing these, (for example, when installing to the Global Assembly Cache).

This means that .Net needs to be present before the Windows Installer package is launched--which is why InstallShield only exposes this as a 'Prerequisite' type option in the Release properties.

If you have the requirement to roll out .Net via SMS or AD or somesuch, I beleive .Net 1.1 is actually an MSI installation that you can extract from it's *.exe bootstrapper, although I've never tested this to see if the bootstrapper does anything special when it launches the package.

Muten Roshi
11-09-2006, 03:56 PM
ahhh, ok...i have extracted the the .NET MSI from the whole installation, and created an MST that so far seems to be working. However i would have liked to have stream lined this whole process instead of doing 2 seprate installations.

I was thinking about a Pre-req for the whole application, but it seems that something i am doing wrong? i'm not sure, but whenever i open up the MST via the Editor 11.5, it only shows Merge Modules in the Redistributables...even if i choose to show All Types. (If i am doing something wrong, can someone help me correct that too?) Thanks.

Cary R
11-10-2006, 01:27 PM
The *.mst isn't technically a redistributable--it's applied at runtime using command parameters. If you like, you can apply a transform to a package at runtime using the TRANSFORMS property on the commandline:

TRANSFORMS Property:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/transforms.asp

ex: msiexec.exe /i package.msi TRANSFORMS=transform.mst

You could even include the *.mst as a support file and configure the 'MSI Command Line' property in your release for when you are launching from setup.exe. Alternatively, you can use the 'Apply Transform Wizard' in InstallShield to apply the transform to the *.msi before distribution (Tools -> Create/Apply Transform).