Dll version may not be updated after some .net 2.0 hotfix is applied

This article only applies to .NET Framework 2.0 SP2, the .NET Framework 3.0 SP2, and the .NET Framework 3.5 SP1, when used with Windows 2003.

 

I got several cases related to dual branch servicing model during the past months. The customers may ask:

1.       My system.web.dll version is newer than the hotfix which the support professional asks to apply. Do I still need to apply this hotfix?

2.       I have applied the hotfix but the file version does not change. Is this hotfix applied successfully? If not, how to solve it?

 

All these questions are related to the Dual Branch Servicing model which is available with the .NET Framework 2.0 SP2, the .NET Framework 3.0 SP2, and the .NET Framework 3.5 SP1. We cannot simply compare the file version to determine whether the hotfix needs to be installed because of the Dual Branch Servicing Model. We can only compare the file version in the same branch.

 

Even if the version number of the existing file is larger than the hotfix version number, it does not mean the problem is fixed in the existing file. For example, after you apply the security update MS10-070 , usually the version of system.web.dll will become GDR 2.0.50727.3618 (The corresponded LDR version is 2.0.50727.5053) If there is a hotfix containing system.web.dll whose version is LDR 2.0.50727.3001,  we still need to apply this hotfix because GDR 2.0.50727.3618  of system.web.dll does not contain the fix in the LDR 2.0.50727.3001.

 

After you apply the hotfix, you may find system.web.dll is updated to 2.0.50727.5053, not 2.0.50727.3001. It is because MS10-070 package contains both of GDR and LDR files. LDR 2.0.50727.5053 is newer than LDR 2.0.50727.3001. When you install the hotfix LDR 2.0.50727.3001, the update will “migrate” the file to LDR 2.0.50727.5053 from MS10-070 package. In other words, the installation of hotfix LDR 2.0.50727.3001 is just to trigger the branch switch.

 

Sometimes you may find the version of system.web.dll is LDR 2.0.50727.5053 after you install MS10-070, in this situation, it is not necessary to install the hotfix LDR 2.0.50727.3001.

 

Several blog articles have explained what is LDR and GDR. For example, GDR, QFE, LDR... WTH ,   How does Windows choose which version of a file to install? .  The article KB2431806 provides a solution for the .Net Framework 2.0 SP2 update problem.

 

Here I summarize the general steps to apply a .Net Framework 2.0 SP2 hotfix on Windows 2003:

 

1.       Determine which branch the current .Net Framework 2.0 SP2 (.NET 3.0 SP2, .NET 3.5 SP1)belongs to. (GDR or LDR?)

                Check whether the hotfix KB960043 is installed. If it is installed, the .Net Framework belongs to LDR. Otherwise, it belongs to GDR.

 

2.       Determine which branch the existing file that we will update belongs to.  (GDR or LDR?)

                On Windows 2003 we can check the version tab of that existing file properties. (KB824994)

 

3.       If .Net Framework branch and the existing file branch are *not* the same, e.g. .Net Framework is in LDR branch but the existing file is in GDR branch, use the solution in KB2431806

 

If you only have the .NET Framework 2.0 Service Pack 2 installed, run the following command:

msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}

If you have the .NET Framework 3.0 Service Pack 2 installed, run the following commands:

msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}
msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}

These commands repair both the .NET Framework 2.0 SP2 and the .NET Framework 3.0 SP2 product layers.

If you have the .NET Framework 3.5 Service Pack 1 installed, run the following commands:

msiexec /f {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}
msiexec /f {A3051CD0-2F64-3813-A88D-B8DCCDE8F8C7}
msiexec /f {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}

 

                It may request to reboot. The above commands will reevaluate .Net Framework installation state and repair the product. Then go to next step.

 

4.       If .Net Framework branch is same as the existing file branch, we need to compare the version of hotfix file with the version of the existing file.

 

                Read the KB article for the hotfix carefully. When the hotfix contains both of LDR and GDR files, compare the version of the hotfix file with the existing file version in the same branch (If the existing file is in LDR, we need to compare LDR version in hotfix. If the existing file is in GDR, we need to compare GDR version in hotfix). If the existing file version is newer, it is not necessary to apply the hotfix. If the hotfix file version is newer, go to next step to apply the hotfix.

 

                If the KB article does not mention LDR or GDR, it usually refers to LDR. If the existing file is in LDR, compare the file version in hotfix. If the existing file version is newer, it is not necessary to apply the hotfix. Otherwise go to next step to apply the hotfix.

 

5.       Apply the hotfix

                Read the KB article for the hotfix carefully. It may require to install other fixes before install this hotfix.

 

6.       After the hotfix is installed, check the updated file version.

                Make sure the file version is newer than or equal to the version in the hotfix in the same branch. If the file is not updated, use the solution in KB2431806 again.

 

 

Regards,

 

XinJin from APGC DSI Team