views:

191

answers:

3

I'm creating an installer for my Windows client application. Currently I create an MSI (Windows Installer) file that contains the .NET 3.5 SP1 redistributable.

My application is less than 10MB, but including the .NET framework will make the installer more than 100MB. That's a lot of extra bits to download.

The .NET Framework keeps increasing in size and unfortunately, I can't use the "client profile" version of the framework.

Should I simply check for the version of the .NET framework I need and warn the user if not? Or should I continue to include the .NET framework in my installer? What's considered best practice?

+1  A: 

I recommend to target an older version of the framework (say, 2.0), and then rely on it being installed on all systems as part of the Windows installation (or some earlier exposure to .NET).

If you really need to use the latest and greatest features, you now know what the cost of these features is.

Martin v. Löwis
+1  A: 

Check for version and point the user to the download URL if necessary.

Or open a (local) web page that the installer supplies. Containing easy to follow instructions and a direct link to the download.

Or create code in the installer to download the file and start the install. I guess this is easy to accomplish with the installer frameworks, it is probably built in to the more advanced ones. Here's how to do it using NSIS (Nullsoft Scriptable Install System).

codeape
IMHO pointing them to it might be confusing for them depending on how proficient they are with computers.
olle
I agree, have added other suggestions.
codeape
+1  A: 

It depends a bit on the profile of the users but in general check if the framework is installed and if not bootstrap the download and installation process. What are you using to create the MSI some MSI authoring systems (like visual studio) support this flow right out of the box.

More and more installers are moving to a very small downloadable executable that asks users what they want to install and that then downloads and installs all appropriate parts (if I were installing visual studio from the web instead of of a dvd it would be nice if it asked me if I would be doing some VB and if not didn't download the required bits)

olle
I'm using InstallAware, which allows you to download the .NET framework separately if needed. But I wanted to get a sense of what the best practice was.
dthrasher