Deploying the .NET Framework

Someone asked me this week for some best practices around deploying the .NET Framework on client machines.   


Unfortunately I don’t have a ton of experience with this.  For the last big application I work on (Terrarium) we decided to simply pre-req’ed the right version of the .NET Framework.  I was able to find a couple of articles on MSDN, but somehow I think there is more to be said here:


I’d love to hear your experiences on deploying the .NET Framework, what works and what doesn’t?

Comments (10)

  1. Denny says:

    well this is based on posts I have read and commented to on

    Problem: Mr X wrote a small app that he wants to make a shareware download for.

    the .Net exe and install fit on 1-5 megs.

    but now he has to get possible customers to download an install the 20 meg runtime.

    Mr X asks why he can’t link in just the bits he needs.

    Mr X then says "the heck with this I’m going back to [other tool here]"

    different forms of this are posted at least once a month on GDN.

  2. moo says:

    I have an application I want to package with the .net setup build. Yet its a bloody pain in the arse to get working with other installers that MUST be preinstalled. These use InstallShield 1.5 and whatever others installer of choice. Microsoft forces us to use .Bat files or whatever shitty solution then call our msi setup file of our .net application.

    Do they make it easy to perform preinstalls of other components, hell no.

  3. moo says:

    Its such a freakin simple task, add other dependant installations, set silent run command line to property and set as custom action to preinstall. So freking simple yet Microsoft want us to use a freakin .BAT file to launch setups.

    You lot should stay of the crack.

    Using the VS.NET setup tools = shite products. I guess I should shop around for a new isntaller tool.

    Get it right or lose the cash.

  4. moo says:

    Prerequisites are impossible to have on the new dotNet Visual Stupid Setup projects. I ended up using a lame .bat file to launch them silently then launch the .MSI file after because customizing the bootstrap is impossible.

    As for WSH, well we cant depend on that being installed on every box, .BAT is guranteed to be on every rig.

    Why cant we just say as a prerequisite, install the dot net framework, install this MDAC, install this other driver, and this other component each use theyre own installer whether its InstallShield or some other hoopla.

    The other option is to code up a basic UI bootstrapper in C.

  5. Diego Mijelshon says:

    The installer should be able to download and install the (latest/needed) version of the Framework.

    Is it that hard?

  6. moo says:

    Yes because the target machines are NOT live on the internet.

    Its not just the .net CLR we need to install we have other drivers and components to isntall.

    We all dont live in this fantasy web service world, some of us make real world solutions.

  7. old man says:

    Moo, please lay off the profanity. It’s not necessary; you make some good points.

  8. Albert says:

    We deploy .NET 1.1 as part of a large shrink wrapped product.

    We found a couple of minor problems:

    1. .NET 1.1 wants to install ASP.NET even on machines where IIS is not present or cannot be present (e.g. XP HOME). This is a problem because ASP.NET creates a debugging user that stops autologin for XP Home customers. The installer should detect when IIS is not available and not install stuff that will never be used.

    2. .NET 1.1 *uninstall* is too thorough and pulls out mscoree.dll from the system32 directory. This is a problem because if a user runs a managed application afterwards they will get a cryptic error message. If the installer left mscoree.dll on the machine the error message would be more pleasant: "This application requires the .NET framework v1.1 bla bla"

    Apart from this the setup is relatively painless.

    MSI 2.0 or 3.0 added some assembly support but they still don’t support ngen or interop assembly registration. I wrote custom actions to do this but I suppose these should be part of the platform.


  9. Brad Abrams says:

    This is all good feedback. I have gotten it to the right folks on the product team. Thanks!

  10. Blair Stephenson says:

    We installed the .Net Framework on 3500 machines no problem.