How to manually patch the .NET Framework 2.0 MSI to fix registry permission bug

Yesterday, I posted a description of a registry permission bug that was preventing the .NET Framework 2.0 from installing in certain circumstances. This bug has been fixed, but it still affects all of the publicly available versions of the .NET Framework 2.0. If you need to install a build of the .NET Framework 2.0 that still has this bug, you can use the following steps to manually patch the .NET Framework 2.0 MSI to workaround this bug.

  1. Download the .NET Framework 2.0 setup package you are trying to install (named dotnetfx.exe) and save it to your local hard drive
  2. Download and install Orca if you don't already have it
  3. Extract the .NET 2.0 setup package by running dotnetfx.exe /t:c:\temp /c
  4. Go to the c:\temp folder you extracted the setup package to in step 3 above and right-click on netfx.msi and choose Edit with Orca
  5. Go to the CustomAction table and click the Action column header to sort by action name
  6. Find the set of custom actions that begin with the name DD_CA_Regtlib
  7. Change the Type value for each regtlib action that is currently listed with value 1025 (which means a deferred DLL custom action) to 3073 (which means a deferred DLL custom action with no impersonation)
  8. Change the Type value for each regtlib action that is currently listed with value 1089 (which means a deferred DLL custom action that does not check return value) to 3137 (which means a deferred DLL custom action with no impersonation that does not check return value)
  9. Save the MSI and close Orca
  10. Go to c:\temp and run install.exe from that location to install the .NET Framework 2.0

Also note that if you are trying to install the .NET 2.0 beta 2 build you can download a version that already has this patch applied, you can download it from here.