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.
There is a trick I use very often when trying to figure out why an MSI-based setup is failing that I wanted to share with everyone. I believe it is commonly known among setup developers and people who have to troubleshoot failed setups, but I could not find any "official" documentation for it. This trick helps narrow down the root cause of error code 1603, which is a generic catch-all error code that means "fatal error during installation". The 1603 error code is returned when any action fails during an installation, and most commonly it indicates that one of the custom actions in the MSI failed.
When I encounter a failed setup with return code 1603, here are the steps that I follow:
I find that the biggest hurdle to debugging a failed setup is often zeroing in on which part of the setup is actually failing, and this trick of searching for "return value 3" ends up helping speed this process up in nearly all cases. Of course, it does not work in 100% of scenarios. Notably, if you are running setup on a non-English version of Windows, the string "return value 3" is written to the log file in the language of the operating system instead of in English, so string searches will not work.
Also note that there is an MSI verbose log parsing tool in the Windows Installer PSDK that is also very useful in locating errors inside verbose log files. You can read more about this parsing tool (called wilogutl.exe) by clicking here. This tool is more thorough in identifying errors, but most often I end up not using it because it is faster to open the log in notepad and do a string search than it is to load up the parsing tool, browse to the log file, wait for it to parse the whole log and then read the output it produces.
<update date="1/21/2009"> Added a caveat to these instructions indicating that some setups create their own verbose logs and enabling verbose logging using the Windows Installer logging registry keys will not work as expected for those setups. </update>
Hi Aaron ,
I'm getting a WFC not found error during the installation of the .Net Framework 3.0 Redist. Pack.
I recently tried to install the WFC , but couldn't achieved.
Could you please advice ?
Thanks in advance
//------------------//
[11/26/06,07:27:10] Windows Workflow Foundation: [2] Error: Installation failed for component Windows Workflow Foundation. MSI returned error code 1603
[11/26/06,07:27:40] WapUI: [2] DepCheck indicates Windows Workflow Foundation is not installed.
[11/26/06,07:27:40] WapUI: [2] DepCheck indicates Microsoft .NET Framework 3.0 was not attempted to be installed.
Hi Bahadir - There is a full list of log files produced by the .NET Framework 3.0 setup package at http://blogs.msdn.com/astebner/archive/2006/10/30/net-framework-3-0-setup-log-files.aspx.
In this case, the log file named %temp%\dd_WF_3.0_x86retMSI*.txt should contain the exact error information for this failure. Can you please check and see if you have this log, and send it to me via email at Aaron.Stebner (at) Microsoft (dot) com so I can take a look and see if I can figure anything out?
To resolve this issue, reinstall all .Net 3.0 product by using .Net 3.0 Uninstaller tool.
Open machine.config file of .Net 2.0 Framework and change encoding format from UTF-8 to UTF-16.
I often get asked questions about how to read, interpret and find error information in verbose Windows
Rob Mensching, father of Windows Installer XML (WiX), blogs about why managed custom actions are a bad
Problems when installing .NET Framework 3.5 (Pre-Release Version)
Neat Tip To Enable Verbose Installer Logging