Known installation issues related to the .NET Framework 3.5 client profile

Last week, I started looking at the beta version of the .NET Framework 3.5 client profile in more detail in order to better understand how it works behind the scenes, and I wrote a brief blog post based on my initial experiences.  While looking at it, I ran into a few installation issues that I didn't see documented, so I sent a few questions off to the folks I know who are working on the client profile project (including Troy Martez).  It turns out that the issues I saw are all known by the team and are being looked at post-beta, but haven't been posted publicly yet.  After talking with Troy, I decided to post the issues and workarounds (if applicable) to help raise awareness in the meantime.

Issue 1: Crash dialog when attempting to install other .NET Framework 2.0, 3.0 or 3.5 products

After installing the .NET Framework 3.5 client profile beta, attempting to install the full version of the .NET Framework 2.0, 2.0 SP1, 3.0, 3.0 SP1 or 3.5 will cause a crash dialog from a process named DotNetInstallBlock.exe.  If you need to install any other version of the .NET Framework on a system with the .NET Framework 3.5 client profile beta installed, you will first need to remove the .NET Framework 3.5 client profile beta from your system (details below in Issue 4).

Issue 2: Crash dialog when attempting to install applications that depend on the .NET Framework 2.0, 3.0 or 3.5

If I try to run an application that installs the .NET Framework 2.0, 3.0 or 3.5 as a chained prerequisite (such as Visual Studio 2005), the application does not detect that the .NET Framework 2.0, 3.0 or 3.5 are already installed because the client profile does not create the same set of detection registry keys.  As a result, it it tries to invoke .NET Framework setup, and that in turn ends up causing DotNetInstallBlock.exe to be invoked.  Just like in Issue 1 above, DotNetInstallBlock.exe crashes and the application installation process fails.  If you need to install any applications that include the .NET Framework as a part of their setup on a system with the .NET Framework 3.5 client profile beta installed, you will first need to remove the .NET Framework 3.5 client profile beta from your system (details below in Issue 4).

Issue 3: Cannot install the .NET Framework 1.0 or 1.1 after installing the client profile beta

After installing the .NET Framework 3.5 client profile beta, you cannot install the .NET Framework 1.0 or 1.1 even though those versions of the .NET Framework should allow you to install side-by-side with the client profile.  Attempting to do so will cause a crash dialog from a process named DotNetInstallBlock.exe.  If you need to install the .NET Framework 1.0 or 1.1 on a system with the .NET Framework 3.5 client profile beta installed, you will need to remove the .NET Framework 3.5 client profile beta from your system (details below in Issue 4), then install the .NET Framework 1.0 or 1.1, then re-install the .NET Framework 3.5 client profile beta.

Issue 4: Uninstall is a multi-step process that must occur in a specific order

The .NET Framework 3.5 client profile beta adds 3 separate entries to the Add/Remove Programs control panel.  When uninstalling the client profile beta, you must make sure to uninstall in a particular order in order for the uninstall process to successfully remove everything that it needs to.  Specifically, you should remove the packages in the following order:

  1. Microsoft .NET Framework 3.5 Client Service Pack 1 Beta 1
  2. Microsoft .NET Framework 3.0 Client Service Pack 2 Beta 1
  3. Microsoft .NET Framework 2.0 Client Service Pack 2 Beta 1

Issue 5: Prerequisite components are downloaded and installed even if they are already present on the system

The .NET Framework 3.5 client profile beta includes 2 prerequisite components that are also installed by the .NET Framework 3.0 and 3.5 - RGBRast and Windows Imaging Components (WIC).  The beta installer always downloads and installs these prerequisites, even if they are already present on the system.  This does not harm anything, but results in unnecessary downloads in some cases.