Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS
with no warranties, and confer no rights. Additionally, views expressed
herein are my own and not those of my employer, Microsoft.
I have posted a couple of previous items about .NET Framework 1.0 SP3 and 1.1 SP1 installation issues (at http://blogs.msdn.com/astebner/archive/2004/09/20/232236.aspx and http://blogs.msdn.com/astebner/archive/2004/09/21/232653.aspx). There is a KB article in the works with more information but it appears to not be posted for viewing yet, so I wanted to include the info that it contains here in the hopes that it might help some folks who are stuck installing one of these .NET Framework service packs.
.NET Framework SP Setup Issues
This document provides a reference to common setup issues and workarounds for .NET Framework 1.1 Service Pack 1 (SP1) and .NET Framework 1.0 Service Pack 3 (SP3).
Windows Update Failures
Windows Update Failed – Detailed Error Code “E0434F4D”
0xE0434F4D (-532459699) is a generic COM exception. This is caused by a failure in the managed patch wrapper. There are 3 recommended steps that may fix this problem. If these do not work, further investigation will be required.
1. Repair .NET Framework 1.1 RTM (click Start, click Control Panel, click Add or Remove Programs, click Microsoft .NET Framework 1.1, click “Click here for support information”, click the Readme link). This page has the 4 steps you will need to run to repair the .NET Framework
2. Clear the Windows Update temporary downloads cache. See http://support.microsoft.com/kb/193385 for more information.
3. Clear the temporary directory. Click Start, click Run, type “%temp%”, click Ok. An Explorer window will open. Select all of the files, and hit the delete key.
If these steps do not solve the problem then more information must be gathered. To see a more detailed error, download the service pack from http://download.microsoft.com/ and then double-click the EXE package. If the issue occurs again, a crash dialog will be displayed this time.
Windows Update Failed – Detailed Error Code “643”
0x643 = 1603 = ERROR_INSTALL_FAILURE. This error can be caused by one of the issues listed in the Error Dialogs section below. The two most likely causes are the netfx.msi resolve source issue or the info 9002 issue.
To see a more detailed error, download the service pack from http://download.microsoft.com/ and then double-click the EXE package. If the issue occurs again, an error dialog will be displayed this time.
Windows Update Failed – Detailed Error Code “652”
0x652 = 1618 = ERROR_INSTALL_ALREADY_RUNNING. This error is caused by the item titled Windows Installer Error 1618 – Another installation is already in progress described below.
TargetInvocationException in SLxxx.tmp – missing registry key
TargetInvocationException in SLxxx.tmp can occur for many different reasons. One of the reasons that this crash occurs is when the Windows Installer registry hive is missing the LocalPackage value for the version of the .NET Framework being serviced.
Use the registry editor (regedit.exe) to navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData. Next, search for the string “.NET Framework”
When the search completes, several registry name/value pairs will be listed in the right-hand window pane. If a DisplayName value of “Microsoft .NET Framework” exists but there is not a LocalPackage value then the TargetInvocationException is being caused by this issue.
Reinstalling .NET Framework 1.0 or 1.1 will fix this problem.
TargetInvocationException in SLxxx.tmp – missing MSI file
Another variation of the TargetInvocationException error is caused by a missing cached MSI file in the %windir%\Installer directory. This crash occurs when the Windows Installer registry hive contains a LocalPackage value that points to a nonexistent file.
See the previous topic (TargetInvocationException in SLxxx.tmp – missing registry key) for details on how to find the LocalPackage registry value. Once the key is found open a command prompt (click Start, click Run, type cmd) and use the dir command to try to locate the target of the LocalPackage value. For example, if the LocalPackage key was d:\windows\installer\f493a.msi you would type “dir d:\windows\installer\f493a.msi”. If the dir shows “file not found” then the TargetInvocationException is being caused by this issue. Reinstalling the .NET Framework 1.0 or 1.1 will fix this issue.
If the file does exist then the TargetInvocationException is being caused by another issue.
TargetInvocationException in SLxxx.tmp – virus scanner
A TargetInvocationException can occur if the service pack setup “cancel” button is pressed while a virus scanner is running.
In this scenario, the TargetInvocationException appears right before the success dialog is displayed and does not harm the computer. This TargetInvocationException can be ignored.
TargetInvocationException in SLxxx.tmp – low system resources
A TargetInvocationException can occur when the system is out of memory.
Rebooting the computer and then re-running the service pack setup can correct this problem.
SLxxx.tmp – Configuration Error
The error "Configuration Error: Unable to load JIT compiler (MSCORJIT.DLL) File may be missing or corrupt. Please check your setup or rerun setup!" is a known issue with the setup for both the .NET Framework 1.1 SP1 and .NET Framework 1.0 SP3 releases. The error is harmless and does not damage the machine. On heavily loaded machines (machines in which it takes at least 5 seconds for setup to launch), before setup has begun installing, a dialog can be displayed that warns about an issue with any one of the following files:
The workaround is to reduce the load on the machine by closing applications before re-running setup.
SLxxx.tmp – Unable to Locate DLL
This dialog is a variation of the SLxxx.tmp – Configuration Error issue described above.
SLxxx.tmp – Common Language Runtime Debugging Services
This crash dialog can be displayed for many reasons. A list of known causes and workarounds follows.
· Check the My_Computer_Zone has FullTrust permissions enabled
1. Click Start, Control Panel, and open Administrative Tools.
2. Select the latest version of the Microsoft .NET Framework Configuration tool.
3. Drill-down to Runtime Security Policy, Machine, Code Groups, All_Code, My_Computer_Zone.
4. Right-click on My_Computer_Zone, select the Permission Set tab, and verify/change the permission set to FullTrust.
Service Pack installation hangs while running IIS
The service pack installation may hang due to unresponsive IIS services on the machine (specifically WS3SVC and SMTP). This is because setup attempts to stop some services if they are running on the machine before patching.
If the service pack installation repeatedly hangs then the workaround is to manually stop the WS3SVC and SMTP services before running setup using the following steps:
1. Run "%SystemRoot%\system32\services.msc /s" to start the Services Manager
2. Find World Wide Web Publishing Service (WS3SVC) and Simple Mail Transfer Protocol Service (SMTP) in the services list.
3. Right-click on each service name and select Stop
Alternately, turning off IISADMIN by opening a cmd prompt and running net stop /y iisadmin will also solve this service pack installation hang issue. Both WS3SVC and SMTP are dependent on IISADMIN, so stopping IISADMIN will also stop WS3SVC and SMTP.
After the installation, rebooting the computer or restarting the services by clicking "Start" instead of "Stop" in the Services Manager will return the computer to its original state.
Windows Installer Error 1618 – Another installation is already in progress
Another installation is already in progress. Only one Windows Installer setup can run at a time. You should complete the other installation before proceeding with this install.
Windows Installer Dialog – cannot find ‘netfx.msi’
Windows Installer may display a dialog asking the user to provide the location of netfx.msi. This is called a Resolve Source Dialog. Sometimes patches can prompt for the original installation media (asking the user for the location of netfx.msi). This can happen when Windows Installer determines that the original product has missing or corrupt files which are not included in the patch package.
Repairing or reinstalling the original product will fix this issue. Here are the repair instructions for .NET Framework 1.0 and 1.1:
To repair the .NET Framework
Obtain the original installation source. For example, if you installed the .NET Framework from CD or DVD, insert the disk. Or, if you downloaded the .NET Framework, download again and choose to save to disk. If you installed from a network share, reconnect.
On the Start menu, choose Run.
For Windows 98 and Windows Me type:
For Windows NT, Windows 2000, Windows XP or later, type:
In the command window, type the following:
n:\<Installation Source>\dotnetfx.exe /t:%temp% /c:"msiexec.exe /fvecms %temp%\netfx.msi"
d:\dotNetFramework\dotnetfx.exe /t:%temp% /c:"msiexec.exe /fvecms %temp%\netfx.msi"
To repair a .NET Framework Language Pack
Obtain the original installation source. For example, if you installed the .NET Framework Language Pack from CD or DVD, insert the disk. Or, if you downloaded the .NET Framework Language Pack, download again and choose to save to disk. If you installed from a network share, reconnect.
n:\<Installation Source>\langpack.exe /t:%temp% /c:"msiexec.exe /fvecms %temp%\langpack.msi"
d:\dotNetFramework\langpack.exe /t:%temp% /c:"msiexec.exe /fvecms %temp%\langpack.msi"
Info 9002: .NET Framework 1.1 Service Pack 1 (SP1) cannot be installed
The dialog “Info 9002: .NET Framework 1.1 Service Pack 1 (SP1) cannot be installed because you have one or more hot fixes installed. Remove them and try again” is displayed when a blocking hot fix is already installed on the computer.
The 2003 October SDK Documentation Update (KB 827821) as well as two other .NET Framework 1.1 SDK patches (KB 841510 and KB 823641) can block the installation of .NET Framework 1.1 SP1. A workaround for this issue is to remove all of the following registry keys:
Removing the registry keys can be done by using the registry editor:
1. Click Start -> Run, type “regedit.exe” and click OK
2. Inside the Registry Editor, navigate the registry structure until you are in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\.NETFramework\1.1
3. Expand the registry key list by clicking the plus ‘+’ sign next to the ‘1.1’ registry hive
4. Right-click on ‘M827821’ and select ‘Delete’
5. Continue right-clicking and selecting ‘Delete’ for M827821028, M827822052, M827821042, M827821036, M827821031, M827821041, M841510 and M823641 if they are present
Windows Installer Error 1325 – ‘XXX’ is not a valid short file name
Windows Installer Error 1325 occurs when the service pack is deployed with the command line argument SHORTFILENAMES=1. A transform file (.MST) is needed to update the short filename in the file table of the .NET Framework netfx.msi to fix this issue if it is necessary to use the SHORTFILENAMES parameter to deploy the service pack.
Windows Installer Error 1642 – The installer cannot install the upgrade patch
“The installer cannot install the upgrade patch because the program being upgraded may be missing or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.”
This dialog means that the wrong patch is being run. This happens when the wrong version of the patch is accidentally downloaded. For instance, .NET Framework 1.0 English (ENU) is installed but the .NET Framework 1.0 SP3 German (DEU) patch is being double-clicked.
Verify that the correct patch is being used. The patch file name ends with the 3-letter language identifier (for instance –enu or –deu).
How to get help
Collect installation log data
Gather the following log files when none of the above items solves your problem and further investigation is required:
To get to the %temp% directory click Start, click Run, type “%temp%” and click OK.
The MSI*.LOG file(s) may not be created by default. If an MSI*.LOG file does not exist please enable Windows Installer verbose logging and then re-run the installation so that an MSI*.LOG file is created.
The following steps can be used to enable Windows Installer verbose logging:
1. Use the registry editor (regedit.exe) to navigate the registry hive HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer.
2. Right-click in the right window pane, select New
3. click DWORD Value
4. Type “Debug” and hit enter
5. Right-click the new registry value Debug and select Modify
6. Set the Value Data field to “7”.
7. Next, Right-click in the right window pane, select New
8. click String Value
9. Type “Logging” and hit enter
10. Right-click the new registry value Logging and select Modify
11. Set the Value Data field to “voicewarmup!”.
Note: After gathering MSI*.LOG, it is recommended that you disable verbose logging by deleting the Debug and Logging values under HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer in your registry. If these values are left behind, they will cause Windows Installer to create a verbose log for every MSI-based setup that is run on your computer, which can significantly impact the speed of installation.
<update date="10/9/2008"> Fixed a broken link to the Windows Update download troubleshooting knowledge base article. </update>