Thursday, December 18, 2008

.NET Framework 3.5 Family Update - My Peek inside the .NET 2 update


KB 959209 has appeared! (was published on December 20, 2008).
This KB point you to 3 other KBs for the 3 parts of the Family Update:

  • 958481 – .Net 2.0 SP2 update
  • 958483 - .Net 3.0 SP2 update
  • 958484 - .Net 3.5 SP1 update

(Those docs are very similar each to the other, telling about the same issues)
Better late than never.


As I stated in my previous entry, Microsoft has uploaded this Family Update, with the usual missing of a description document what went into this update.

The only thing they said was:

The Microsoft .NET Framework 3.5 Family Update provides compatibility roll-up updates for customer reported issues found after the release of Microsoft .NET Framework 3.5 SP1

So I have decided to peek inside.

I don't take any responsibility on the following information. I might have done something totally wrong in the way I have extracted the update and got wrong info from within. You take all the risk on yourself if you use this info.


Now that we done with those legal issues, what I have done is extract the .msp file from within the the NDP20SP2-KB958481-x86.exe.

Then, using MSIX tool, I have extract the files from the .msp file.

Then, extract the file.

Next step was renaming the dlls I have found to have the correct extension (which was missing)

Next, for each dll (only managed), using Reflector, disassemble and export the source files.
Doing the same last action to the original dlls from the .NET GAC.

Using Araxis Merge to compare the source.

Please remember that I have done the investigation only for the .NET 2.0 SP2 Family update.

Non managed dlls in the update: (can't say what was changed there)

  • aspnet_wp.exe
  • mscordacwks.dll
  • mscorjit_dll
  • webengine.dll

Managed dlls:

  • mscorlib.dll
  • System.Data.OracleClient
  • System.Xml
  • System.Web

Main changes in those Managed dlls:

(I will just write the changes in short, I don't have more info to share- this would required days of reading Microsoft's code).


  • Better handling of IIS Rewrite Module in multiple classes(coockieless security, IIS7 worker request, HTML Form, Client Path)
  • Process Custom Browser Files - ignores hidden files in the directory (at least this what it's look like)
  • Something in state cache handling.
  • Change in Sort entries in control builder.


  • xml CanWrite check instead of GetSetMethod in one method.


  • RollbackDeadTransaction and some more Transactions code was added to a method .


  • Handling Delegate & MulticastDelegate Combine null issue better

the Version was changed from 2.0.50727.3053 to 2.0.50727.3082.

wow, this was long.
Hope you enjoy it.

I still wait for the missing KB doc from Microsoft...

If it won't come soon, you might find here the same analysis to the 2 other updates (I don't promise).


ihatetotellu said...



Jon said...

Thanks ihatetotellu!

Marcelo @ UruIT Offshore Development said...

Thanks for the post, it helped to solve my issue.

Also, I would like to contact you for some project related issue but I was not able to find your email.

if possible, please drop me a line to info (at)