.NET Framework 2.0 hotfix causes temporary application performance problems

Some customers who have installed the recent .NET Framework 2.0 security update (KB928365 and MS07-040) on systems that also have the .NET Framework 3.0 installed have noticed performance degradation in their Windows Presentation Foundation (WPF, also formerly known as Avalon) applications for a short period of time after installing this update. As Heath Stewart previously […]

Some customers who have installed the recent .NET Framework 2.0 security update (KB928365 and MS07-040) on systems that also have the .NET Framework 3.0 installed have noticed performance degradation in their Windows Presentation Foundation (WPF, also formerly known as Avalon) applications for a short period of time after installing this update.

As Heath Stewart previously described in this blog post, installing an update for the .NET Framework 2.0 causes native images to need to be re-generated for assemblies that depend on any updated .NET Framework 2.0 assemblies (including .NET Framework 3.0 assemblies). The startup performance of some WPF applications depends greatly on having available native images, so if the existing native images are invalid and need to be re-generated, these WPF applications will take longer to load until the WPF native images have been re-generated.

During the initial installation of the .NET Framework 3.0, some of the .NET Framework 3.0 assemblies were flagged as "critical," which will cause native images to be generated at initial setup time. However, that flag is not currently respected in cases where an update to another product causes native images to need to be regenerated. In this case, the security update only modifies the .NET Framework 2.0 product, and does not update the .NET Framework 3.0 product. This causes the 3.0 assemblies to be queued for new native image creation in the background. The NGEN service waits until the system is idle for 5 minutes before processing the background queue.

Heath posted a workaround that can be used to cause the queued native images to be generated immediately so you do not have to wait for system idle time - you can run this command from a cmd prompt (if you are running Windows Vista, you need to use an elevated administrator cmd prompt):

%windir%\Microsoft.NET\Framework\v2.0.50727\ngen.exe executeQueuedItems

More info....

Microsoft, Security Updates, .NET Framework, Hotfix, KB928365