Microsoft KB Archive/939160

From BetaArchive Wiki
Knowledge Base


The file version is rolled back to the version that was installed by the last service pack when you remove some security updates for the .NET Framework 1.1 or for the .NET Framework 1.0

Article ID: 939160

Article Last Modified on 12/3/2007



APPLIES TO

  • Microsoft .NET Framework 1.1 Service Pack 1, when used with:
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Starter
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Starter Edition
    • Microsoft Windows XP Media Center Edition 2002
    • Microsoft Windows XP Tablet PC Edition
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
  • Microsoft .NET Framework 1.0 Service Pack 3, when used with:
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Starter
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Starter Edition
    • Microsoft Windows XP Media Center Edition 2002
    • Microsoft Windows XP Tablet PC Edition
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server



SYMPTOMS

Consider the following scenario. You have a computer that has the Microsoft .NET Framework 1.1 or the Microsoft .NET Framework 1.0 installed. Then, you remove one of the security updates that are described in the following articles in the Microsoft Knowledge base:

  • 928366 Description of the security update for the .NET Framework 1.1 for Windows XP and Windows 2000: July 10, 2007

  • 929729 Description of the security update for the .NET Framework 1.1 for Windows Vista: July 10, 2007

  • 928367 Description of the security update for the .NET Framework 1.0 for Windows Vista, Windows Server 2003, Windows XP, and Windows 2000: July 10, 2007

In this scenario, the file version of the .NET Framework is rolled back to the file version that was installed by the last service pack.

CAUSE

This behavior occurs because updates for the .NET Framework 1.1 and for the .NET Framework 1.0 were originally designed to work with Windows Installer 2.0. Updates for the .NET Framework 1.1 and for the .NET Framework 1.0 were not designed to work with Windows Installer 3.0.

Note Windows Installer 3.0 is not supported on older platforms such as Microsoft Windows Millennium Edition, Microsoft Windows 98, and Microsoft Windows 95.

Windows Installer 2.0 has a limitation. Windows Installer 2.0 does not natively support the ability to remove an update. To work around this limitation, a custom remove functionality is built into the updates for the .NET Framework 1.1 and for the .NET Framework 1.0.

The custom remove functionality works as follows. The update carries a so-called anti-patch in addition to the payload .msp file. When the appropriate remove command is provided to the update wrapper executable, the wrapper installs the anti-patch. The anti-patch is actually a second update. The second update includes the last known good version of each one of the files in the payload MSP file. This version is the last baseline version. This version is typically from the most recent service pack if one exists. Therefore, when an update for the .NET Framework 1.1 or for the .NET Framework 1.0 is removed, the file version is not always rolled back to the earlier file version. The file version may be rolled back to the file version that was installed by the last service pack.

Consider the following scenario. You have two updates for the .NET Framework 1.0 Service Pack 3. The first update is update KB886906. This update has file version 1.0.3705.6021. The second update is update KB928367. This update has file version 1.0.3705.6060.

The following table describes what occurs in this scenario when you install and then remove the updates.

Step Action Previous file version New file version
1 You install the .NET Framework 1.0 Service Pack 3 Not applicable 1.0.3705.6018
2 You install update KB886906. This is the first (older) update. 1.0.3705.6018 1.0.3705.6021
3 You install update KB928367. This is the second (newer) update. 1.0.3705.6021 1.0.3705.6060
4 You remove update KB928367. This is the second (newer) update. 1.0.3705.6060 1.0.3705.6018

This scenario demonstrates that after you remove the second update, the .NET Framework 1.0 is not rolled back to the file version of the first update as expected. Instead, the .NET Framework 1.0 is rolled back to the baseline version. (The baseline version is the file version that is included in the .NET Framework 1.0 Service Pack 3.)

RESOLUTION

Microsoft has released an uninstall cleanup tool to correct this behavior. You should use this tool if you remove any of the security updates that are listed in the "Symptoms" section.

To obtain the uninstall cleanup tool, visit the following Microsoft Download Center Web site:

After you run the uninstall cleanup tool, the computer is rolled back to a known good state. At this point, you must reinstall the earlier security update.

The following table describes what occurs when you install and then remove the updates. The table also describes how the uninstall cleanup tool corrects this behavior.

Step Action Previous file version New file version
1 You install the .NET Framework 1.0 Service Pack 3 Not applicable 1.0.3705.6018
2 You install update KB886906. This is the first (older) update. 1.0.3705.6018 1.0.3705.6021
3 You install update KB928367. This is the second (newer) update. 1.0.3705.6021 1.0.3705.6060
4 You remove update KB928367. This is the second (newer) update. 1.0.3705.6060 1.0.3705.6018
5 You download and run the cleanup tool 1.0.3705.6060 1.0.3705.6018
6 You reinstall update KB886906. This is the first (older) update. 1.0.3705.6018 1.0.3705.6021

The following table describes the update that you must reinstall if you remove one of the security updates that are listed in the "Symptoms" section.

.NET Framework version Update that you have removed Update that you must reinstall
.NET Framework 1.1 Service Pack 1

928366 Description of the security update for the .NET Framework 1.1 for Windows XP and Windows 2000: July 10, 2007


886903 ASP.NET path validation vulnerability in Microsoft .NET Framework 1.1 Service Pack 1


.NET Framework 1.1 Service Pack 1

929729 Description of the security update for the .NET Framework 1.1 for Windows Vista: July 10, 2007


886903 ASP.NET path validation vulnerability in Microsoft .NET Framework 1.1 Service Pack 1


.NET Framework 1.0 Service Pack 3

928367 Description of the security update for the .NET Framework 1.0 for Windows Vista, Windows Server 2003, Windows XP, and Windows 2000: July 10, 2007


886906 ASP.NET path validation vulnerability in Microsoft .NET Framework 1.0 Service Pack 3


You must run the cleanup tool as described here after you remove any of the new updates and before you install the earlier update. You must repeat this process every time that you remove the security update. That is, you must run the uninstall cleanup tool and then install the earlier update every time that you remove the security update.

Note When you run the uninstall cleanup tool, the tool is not installed on the computer. The tool performs the necessary cleanup on the computer and then exits.

MORE INFORMATION

For more information about issues that occur when you remove an update after you install multiple updates, click the following article number to view the article in the Microsoft Knowledge Base:

938244 The file version is rolled back to the version that was installed by the last service pack when you remove an update for the .NET Framework 1.0 or for the .NET Framework 1.1



Additional query words: security update uninstall remove .NET Framework 1.0 1.1 rollback uninstall MSI Windows Installer 2.0 2.x limitation anti-patch file version Service Pack SP baseline

Keywords: kbupdateissue kbuninstall kbinstallation kbupdate kbhowto kbtshoot kbexpertisebeginner kbprb KB939160