I tried several times to install the Microsoft .NET Framework 3.5 (Pre-Release Version) on my work Windows XP SP 2 machine with no success. Here is the error I got (when pressing "see error log"; the error log can also be seen to %TEMP%\dd_dotnetfx3error.txt):

Windows Communication Foundation: [2] Error: Installation failed for component Windows Communication Foundation. MSI returned error code 1603

It seemed to be a WCF installation problem. So it was about .NET Framework 3.0 not 3.5. Indeed, after several Google searches I found some references about this problem related to the .NET Framework 3.0. 

Update: When .NET Framework 3.5 is installed also .NET Frameworks 2.0 and 3.0 are installed if not present.

Error code is 1603 is a general error, that means "fatal error during installation". In order to find out more about the error that caused the failure, I followed the steps described by Aaron Stebner on his blog: How to locate the cause of error code 1603 in a verbose MSI log file and I noticed that the file %TEMP%\dd_NET_Framework30_Setup*.txt contained the following error message:

Error 1402.Could not open key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 3.0.0.0. System error 5.  Verify that you have sufficient access to that key, or contact your support personnel.

How was possible to not have sufficient rights on the registry when I was logged in as administrator? Interesting …

Then I tried the workarounds offered by Microsoft here:

2.7.2 Some WCF perf counter registry keys are not deleted on uninstall of some pre-release versions of the .NET Framework 3.0

Some pre-release versions of the .NET Framework 3.0 did not remove all perf counter registry keys on uninstall. The presence of these keys blocks the installation of the .NET Framework 3.0. The installation fails with this error:
                “ERROR_INSTALL_FAILURE 1603 Fatal error during installation”
The following keys may still exist in the registry after uninstall:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance

To resolve this issue

Run the uninstall tool at: http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146

If the issue persists, try rebooting. Many issues can destabilize the performance counters. Rebooting can fix some of those issues and is safer than manually editing the registry. If that does not solve the problem, check the following registry keys. Delete the parent registry keys of any of the following that are empty or whose values contain “Wbem*”:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance

For example, if this key is empty:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance

you should delete:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0

No success again! 

Then I have re-read the error message that was saying that the setup has no rights to write the registry key and I tried giving my user permissions to full control of the registry node (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security\ServiceModel 3.0.0.0). Then I tried to reinstall and again error.
Finally, I tried giving Everyone full control of this node, re-ran the install and … IT WORKED! :)

Here is how to give permissions to the registry node:  

  1. Open the registry editor: Start - Run…, then enter "regedt32" (without quotes).
  2. Navigate down to the node by opening each node in the hierarchy.
  3. Right click on the node we're after (ServiceModel 3.0.0.0) and select Permissions
  4. Click on Add, then enter "everyone" (no quotes) on the 'Select Users, Computers or Groups' dialog then click OK.
  5. Back on the 'Permissions for ServiceModel 3.0.0.0' dialog select the user group Everyone, then make sure the Full Control checkbox has a tick, then click OK.

     

Related posts:

  1. Could not load file or assembly System.Web.Extensions, Version=3.5.0.0 . Today, I have compiled one of my .NET 2.0...
  2. Produse Microsoft dezvoltate pe .NET Framework Cate din produsele Microsoft se bazeaza pe .NET Framework?...
  3. Sending Email Reports from a Windows Service When you need to send email reports on a...
  4. WPF: PresentationHost.exe Every time I run my WBF Browser Application sample I...
  5. Silverlight(WPF/E) vs WPF Browser Application(XBAP) The other day I posted some definition for a WPF Browser...