Available installation modes for the .NET Framework 2.0
I have gotten several questions in the past from customers who need to install the .NET Framework 2.0 as part of their setup package or deploy it to systems in a network. There are multiple options avaiable in this scenario, and each has their own strengths and weaknesses. This post describes the major installation modes that are available for the .NET Framework 2.0 and some important things to consider when deciding which mode is best for your installation or deployment scenario.
Silent mode
Installing the .NET Framework 2.0 in silent mode suppresses all UI screens during installation. You can run setup in silent mode with one of the following command line switches:
dotnetfx.exe /q:a /c:"install.exe /q"
-or-
msiexec.exe /i netfx.msi /qn /l*v netfx20install.log ADDEPLOY=1
Silent mode is useful when installing the .NET Framework as part of another setup package and you want to control the UI experience from the other setup package.
When installing in silent mode, you need to handle any scenarios where .NET Framework 2.0 setup would ordinarily display error dialogs or reboot prompts. The following blog posts provide more information about various scenarios that you will need to handle in your setup package when installing the .NET Framework 2.0 in silent mode:
- List of possible return codes from .NET Framework 2.0 setup
- How to detect old beta versions when deploying the .NET Framework 2.0
- How to manage reboots when deploying the .NET Framework
Unattended mode
Installing the .NET Framework 2.0 in unattended mode suppresses all UI screens except for a small progress dialog during installation.
You can run setup in unattended mode with one of the following command line switches:
dotnetfx.exe /q:a /c:"install.exe /qb"
-or-
msiexec.exe /i netfx.msi /qb /l*v netfx20install.log ADDEPLOY=1
Adding an exclamation point to make the command line switch /qb to make it /qb! in the examples above will hide the cancel button on the progress dialog.
Unattended mode is useful if you want to install or deploy the .NET Framework and provide feedback to the user during installation, but do not want the user to have to click through any other UI screens. Hiding the cancel button can be useful if you do not want the user to be able to cancel the installation.
If you run .NET Framework 2.0 setup in unattended mode using the above command line switches, you will notice that the progress dialog does not contain any explanatory text during installation. Instead, it looks like the following:
Because we designed the .NET Framework 2.0 to be a multi-lingual installation package, the ProductLanguage property is set to 0 in the Property table of netfx.msi. Unfortunately, there is a bug in Windows Installer 3.1 and earlier that causes incorrect string resources to be loaded when ProductLanguage = 0 like this. In order to workaround this bug, we decided to ship the .NET Framework 2.0 so that it displays no text in this progress dialog instead of hard-coding English strings in this dialog.
Heath Stewart explained this scenario in more detail in this blog post. In addition, he provided a set of transforms that you can download and apply to display explanatory text in the language of your choice when installing the .NET Framework 2.0 in unattended mode. If you want to use one of these transforms, you will need to choose a single language that you want the UI to be displayed in, and then you can use one of the following command lines:
dotnetfx.exe /q:a /c:"install.exe /qb /msipassthru MSI_PROP_BEGIN""TRANSFORMS=<path>\strings.enu.mst""MSI_PROP_END"
-or-
msiexec.exe /i netfx.msi /qb /l*v netfx20install.log ADDEPLOY=1 TRANSFORMS=<path>\strings.enu.mst
Standard mode
Installing the .NET Framework 2.0 in standard mode displays all setup UI screens during installation. When installing in standard mode, .NET Framework 2.0 setup will display any necessary dialogs regarding missing prerequisites, beta versions that need to be uninstalled, errors during installation or reboots after installation.
The .NET Framework 2.0 setup package contains multi-lingual setup UI. When running .NET Framework 2.0 setup in standard mode, the setup executable checks the user's operating system UI language settings and displays setup UI in the same language as the operating system.
Comments
Anonymous
July 02, 2006
PingBack from http://blogs.msdn.com/astebner/articles/574618.aspxAnonymous
July 09, 2006
PingBack from http://blogs.msdn.com/astebner/archive/2006/07/09/660808.aspxAnonymous
July 10, 2006
The comment has been removedAnonymous
July 14, 2006
Great articleAnonymous
December 06, 2006
I am not able to update my .NET 1.1 to .NET 2.0 despite trying some possibilities like I have uninstalled .NET 1.1 and tried installing 2.0 but still it doesnt workoutAnonymous
December 06, 2006
Hi Enthu38 - The .NET Framework is designed to be side-by-side, so you don't need to uninstall .NET 1.1 in order to install 2.0. If 2.0 setup is failing, there is a verbose log file produced that should help narrow down the cause. It is named %temp%dd_netfxmsi.txt and if you can zip and send that to me, I'll try to take a look and see if I can figure anything out. You can send it to Aaron.Stebner (at) microsoft (dot) com.Anonymous
July 18, 2007
The comment has been removedAnonymous
September 21, 2007
I created an installation point for Framework 2.0 and patched it with the three msp's to date and use this to install: msiexec.exe /i netfx.msi /qn /l*v netfx20install.log ADDEPLOY=1 Works Great! But if I go to Add remove programs to remove, it fails "Another version of the product is already installed. Installation of this product cannot continue. To configure the existing version of this product, Use Add remove products in the control panel" It can be removed following the manual instructions at http://support.microsoft.com/kb/908077 But that dont sit well with me.Anonymous
September 24, 2007
Hi Computerfood2003 - What is the exact location that the Add/Remove Programs entry is pointing to that gets launched when you click on it from there after installation? Also, do you happen to have a verbose MSI log file from when you attempt to remove it from Add/Remove Programs that I could look at? You can send the log to Aaron.Stebner (at) microsoft (dot) com.