Office 2010 setup may fail when upgrading from Office 2003 if the Office 2003 Local Installation Source (LIS) is corrupt


Many thanks to Curtis Sawin, a Senior Consultant with Microsoft Consulting Services, for providing this content for the Office Resource Kit Blog.

Recently, while performing deployment testing of Microsoft Office 2010 for a customer, we ran into a specific issue while upgrading Office 2003 to Office 2010.  Specifically, Office 2010 setup may fail when upgrading from Office 2003 if the Office 2003 Local Installation Source (LIS) is corrupt.  Further, it’s possible to install Office 2003 in such a manner that Office 2010 will detect a corrupt LIS, when, in fact, the source has been deleted.  We discovered that Office 2010 responds differently to an Office 2003 installation when a LIS is not created, compared with a LIS that is created and then deleted.

This blog post describes the issue and provides a workaround.

Office 2003 and the Local Installation Source (LIS)

Beginning with Office 2003, Setup.exe creates a LIS as an optional component during installation.  Typically, the LIS is installed into the “C:\MSOCache” folder.  The goal of the LIS is to ensure that any requirements for the original installation source do not result in a prompt to the user.  The original installation source may be required if an end-user repairs Office 2003, adds a new feature, or applies a hotfix (i.e., a patch).  If the original installation source is not available, the end-user will be prompted to find a source location where the Office 2003 setup files can be found.  If the end-user does not know the location of the source, the desired action (e.g., repair, feature addition or hotfix installation) will fail. 

At the end of the Office 2003 installation, you are prompted to Delete installation files (see image below).  If this check box is selected, when you select the Finish button, the setup files are removed from the LIS.  (Side note:  This check-box is not selected by default).

It’s also important to note that to install Office 2003, you can also run the MSI directly (e.g., std11.msi or pro11.msi) instead of running Setup.exe.  Using the MSI to install Office 2003 is fully supported and allows customers to use Group Policy to deploy Office 2003.

If the MSI is used rather than Setup.exe, then a LIS is not created when installing Office 2003. 

Office 2010 Setup and the Office 2003 LIS

Office 2010 setup detects for previous versions.  Specifically, Office 2010 checks for Office XP, Office 2003, and Office 2007.  When checking for Office 2003, setup checks for an Office 2003 LIS and validates that it’s intact.  If the Office 2003 LIS has been altered, Office 2010 will display the following message and the installation will stop.

 Additionally, the following will be written to the installation log file:

Catalyst Office 2003 Cache Integrity check.  Corrupt cache found.
Return Code: 30066.  Exception Caught: PreReqCheckFailure

In short: If the Office 2003 LIS has been altered or corrupted, Office 2010 setup will fail.

Additionally, it should be noted that if you select Delete Installation Files at the end of Office 2003 setup, Office 2010 setup will detect this as a corrupt cache.  This is very important to note, so I’ll say it louder: 

It is possible to install Office 2003 in a (supported) manner which will cause Office 2010 setup to fail.

This situation is exacerbated in that Office 2003 may have been installed years ago.  Thus, IT admins may not be aware of how Office 2003 was installed when they are preparing to install Office 2010.   Thus, detecting and handling this situation becomes critical to ensuring a smooth upgrade to Office 2010.

That’s the bad news.  The good news is the following:

– Only specific, limited subset of Office 2003 installations are subject to this issue.
– You can use an Office 2003 Resource Kit tool to prevent this issue from causing problems.

Office 2003 Installations Affected

As stated earlier, there are two ways to install Office 2003: Using setup.exe or using the MSI directly.  If you install Office 2003 using the MSI directly, the LIS is not created.  Thus, Office 2010 setup will not perform this “cache integrity check.  Meaning, Office 2003 installations installed via the MSI directly are not subject to this issue.

Further, the Delete Installation Files check box is not selected by default. Thus, if you were to install Office 2003 silently, or with a basic (progress-bar only) interface, the LIS would not be deleted at the end of the installation.  This is a configurable setting, however.  If you set the property PURGE=1 during Office 2003 setup then the cache will be deleted upon the completion of setup.  Thus, you must either take specific action during installation (i.e., clicking the check-box), or purposefully configure the Office 2003 installation to purge its LIS in order to get into this situation.

Thus, it would be extremely rare to find that Office 2003 has been installed in this manner, so that Office 2010 cannot be installed.  In short, this problem only exists if the following are true:

– Office 2003 has been installed using setup.exe, and

– The Delete Installation Files check-box was selected during Office 2003 setup, or
– The PURGE property was set to “1” during Office 2003 setup.

Workaround: Correcting The Issue using LISTOOL.exe

We found that when Office 2003 is installed without a LIS via the MSI installation method, Office 2010 setup upgrades successfully.   Further, even though there is no Office 2003 LIS, because it wasn’t created in the first place, the original Office 2003 source is not needed when Office 2010 is installing.  Office 2010 will successfully uninstall Office 2003 using the cached MSI file (in “c:\windows\installer)”.

We also found that removing the “C:\MSOCache” folder does not correct this issue.  Meaning, if you install Office 2003 with a LIS, Office 2010 setup will detect this, even if the LIS no longer exists, and the Office 2010 installation fails.  In short, Office 2010 setup makes a distinction between an Office 2003 installation with a removed LIS and an Office 2003 installation without a LIS ever created.

However, you can use LISTOOL.exe, from the Office 2003 Resource Kit to either regenerate the LIS, or delete the LIS safely.  To delete the LIS, you can run:

LISTOOL.exe remove=all

This will delete the LIS, and allow Office 2010 setup to succeed.  The above command typically takes less than 5 seconds to complete, and can be run silently, using the “/q” command-line switch.

The command-line switches for LISTOOL.exe can be found in the screen shot below.  These can also be found by running

LISTOOL.exe /?

Running LISTOOL.exe before Office 2010 Setup

Now that we know we can mitigate this issue using LISTOOL.exe, it would be more helpful to perform this step immediately before Office 2010 setup is run…but only on computers where Office 2003 is currently installed.

This can be facilitated by creating a script/program that:
– Checks for any Office 2003 product,
– removes the Office 2003 LIS,
– then installs Office 2010. 

Such a script must be run prior to calling Office 2010 setup.  It cannot be called by leveraging Add Installations and Run Programs in the Office Customization Tool (OCT) to run a program before Office is installed.  Nor can you use the Command element in the Config.xml to run a program before Office 2010 is installed.  Such programs are run after the cache integrity check is performed.

In order to check for any Office 2003 product, you can use the Windows Installer automation interface to enumerate through all MSI products on a machine to find any Office 2003 product.   When you enumerates through all MSI products, the ProductCode for each product is returned.  Thus, in order to detect Office 2003, you must know the ProductCode for the Office 2003 SKU (i.e., Standard, Professional, etc.).

Fortunately, the ProductCode algorithm for all Office products is publicly available.  Support article 823672: Description of numbering scheme for product code GUIDs in Office 2003 can be used as a guide.  For instance, the last 28 characters of the ProductCode for any Office 2003 product is “6000-11D3-8CFE-0150048383C9}.”  You can then detect for this string when enumerating all products, and run LISTOOL.exe if a matching product is found.

Below is a sample VBScript that demonstrates this:

‘     Sample script to check for Office 2003.
‘     The script will launch LISTOOL.EXE to remove the Office 2003 LIS for any Office 2003 product
‘     Requirements: LISTOOL.EXE and Install.cmd must exist in the same path
‘     Notes:  This sample contains no error handling.  It is for demo purposes only.

Option Explicit

Dim oMSI, oProds, oProd
Dim oFSO, oShell, strCommandLine, strofficeCommandline
Dim str2003Guid, intLen2003, intReturn

set oFSO = CreateObject(“Scripting.FileSystemObject”)
set oShell = CreateObject(“WScript.Shell”)
set oMSI = CreateObject(“WindowsInstaller.Installer”)
set oProds = oMSI.Products

str2003Guid = “6000-11D3-8CFE-0150048383C9}”
intLen2003 = len(str2003Guid)

strOfficeCommandline = “install.cmd”
strCommandline = “listool.exe /q remove=all”

‘     Check for any office 2000 or 2003 product
for each oProd in oProds
      ‘ Remove Office 2003 LIS if found
      if right(oProd,intLen2003) = str2003Guid then
            intReturn = oShell.run(strcommandLine,,1)
            exit for
      end if
next

‘     Call the Office 2010 installation
IntReturn = oShell.run (strOfficeCommandline,,0)

Summary

Office 2003 presents a unique challenge when upgrading to Office 2010.  Fortunately, the projected scope of affected computers is small, and a targeted mitigation can be used to work around this issue. 

Comments (28)

  1. Anonymous says:

    I'll try again.

    DarkIQ, that also worked for me but:

    Jill_m and Curtis: Yours did not. I downloaded Listool.exe from  MS site. http://www.microsoft.com/…/details.aspx

    I would much rather provide a shortcut to my customer so I don't have to teach them how to remove a registry key.

    Is there a way to get the command line to work?

    Here is what I put in a dos command line prompt:

    "C:tempLISTool.exe" /q remove=all

    also tried moving the quotes around:

    "C:tempLISTool.exe /q remove=all"  AND  "C:tempLISTool.exe" "/q remove=all "

    but no luck.

    The error is :

    "Command line option syntax error. Type Command /? for Help."

    I did do that and I get the standard command line option list, in which /Q is an option.

    But, it is a much smaller list that the one you displayed above. Mine only has /Q, /T. /C and /C:<Cmd.

    I'm running Wn 7 Pro, SP1

  2. Anonymous says:

    Hi Jason, here's a note from Curtis in response to your question:

    Jason – Unfortunately, I've not tested this specific configuraiton, and since Office 2003 is not being removed in your scenario, I'm not sure if the same symptoms would occur.

    However, removing the LIS (using LISTOOL…not by remvoing the "C:MSOCache" folder) should not impact the ability of Office 2010 to upgrade only Excel.  As stated in article, Office 2003 will use the cached MSI in "C:WindowsInstaller" during any uninstall, if you choose to uninstall Office 2003 in the future.

    I'd strongly suggest to test your specific scenario before deploying to your customers.

  3. Anonymous says:

    I just posted a comment but wasn't logged in. I'm just sending this to see if the original one was posted.

    John S

  4. Anonymous says:

    AndrewFelber, thanks for the tip. I'm checking with Curtis on this and we'll get the article correctly shortly.

  5. Gisabun says:

    It doesn't fail but you also can't install the 64-bit version when you want to keep a 32-bit version of Office around [example: you still love FrontPage 2003]. The installer will tell you that because of the remaining 32-bit Office app, only the 32-bit version can be installed.

  6. Curtis Sawin (MSFT) says:

    Good catch!  

    You’re correct in that you can’t run 64-bit Office 2010 with any 32-bit version of Office.  This restriction is mentioned in the article support.microsoft.com/…/2121447 in the section "Office 2010 suites and products 64-bit version."

  7. AndrewFelber says:

    Be aware that the remove=all needs to be in lowercase!!  Not sure why, but it fails using ALL CAPS…

  8. Curtis Sawin (MSFT) says:

    Another good catch!

    AndrewFelber – you're correct that the text "remove=all" needs to be in lowercase, in addition to the text "/q."  We have updated the article to reflect this important change.  

    We really appreciate the feedback!

  9. MDN says:

    Is it possible to non-interactively run the Local Installation Source Tool? I've scripted this tool (inspired by the sample script), but so far the script falls down. Only running LIS Tool from Command Prompt seems to achieve the desired results (Delete and disable succeeded).

  10. Jason says:

    Would this solution still be a good one if you were only upgrading one of the Office apps and not the whole suite?  Our situation is that currently we only want to upgrade Excel to the 2010 version but leave the rest of the apps (Word, PowerPoint, Access, Visio) at the 2003 version.  Would deleting the LIS cause issues in this case?

  11. Tahrim says:

    OM*G Thank You So Much SOOO HAPPY IT WORKS HAD THIS PROBLEM FOR A YEAR AND FINNLY I FIXED UR THE BEST!!!!!!!!!!!!!!!!!1

  12. Sweety says:

    Good catch…….

    Any ither problem while migrating from Microsoft Office 2003 to 2007?

  13. Jodi says:

    This was extremely helpful, thank you!

  14. Gregg Eshelman says:

    What caused me the most trouble is the Office installers cannot properly handle this Registry key not having full rights assigned to Everyone. hkey_local_machinesoftwaremicrosoftwindowscurrentversionrunoptionalcomponentsmsfs

    Can't install OR remove OR upgrade Office 2003 and later. I did find Microsoft FixIts that forcibly deleted Office 2003 and 2010. Then I dug in to manually delete what those left behind and used CCleaner to shovel the rest out of the Registry.

    Next I used NTREGOPT to optimize and compact the Registry, highest reduction I've ever seen at 34%. Then I set the permissions on that key to full rights to Everyone and FINALLY Office 2010 would install.

  15. DarkIQ says:

    This has worked for me 100% of the time when i see this error, just delete all the keys in the

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice11.0Delivery

    folder in the registry, usually there will be two there. after that, just re-run the setup 😀

  16. Gavin Miller says:

    I have downloaded the LISTool.exe file from the link provided but the program appears to be different and doesn't contain the 'remove' option

  17. Rich says:

    Thanks DarkIQ, the steps in the article didn't help me as the listool i downloaded didnt seem to have the same switches as the article, but deleting those keys sorted it

  18. Gavin Miller says:

    Found the remove option but it hasn't helped still can't install Visio 2010.

    Are there any other options except from wiping the machine and starting fresh.

  19. wow says:

    Thanks DarkIQ that fixed it for me. The article is too long

  20. fixin puters says:

    Thanks DarkIQ great quick fix!

  21. Paul W says:

    DarkIQ – that just worked for me too – many thanks!

  22. randy says:

    For anyone reading this post and having trouble with the LISTOOL, the LISTOOL.exe file you are downloading is an installation file.  You need to double-click it and it will prompt you for a folder to extract to.  Once you extract the files (listool.exe and listool.chm), open a command prompt and navigate to that folder.  Then you will be able to run listool.exe remove=all.  

    Unfortunately for me that still didn't do the trick.  I get an error indicating the Office Source Engine (OSE.exe) can not be started.  I had uninstalled Office 2003 completely and then tried to install Office 2010.  I tried DarkIQ's suggestion to delete the registry keys in HKEY_LOCAL_MACHINESOFTWAREMicrosoftOffice11.0Delivery (after exporting a backup of course)

    and that allowed me to run Setup.exe for Office 2010.  Thanks DarkIQ!

  23. Ken Shirt (kenryshirt@waitrose.com) says:

    I'm planning to upgrade my Office 2003, simply because some people who write to me use 2010, and I cannot handle the code this 2010 version puts up.  I cannot understand what has been written so I want to upgrade my Office to 2010?  However the process written about above I cannot understand.  Is there a simple way of upgrading my Office which me, a lay- person, can use?

    Can someone please give me a direction? n Thank you, Ken Shirt.

  24. Mads says:

    I have a similar problem. I can uninstall 2003 and install 2010 Project up. But when my package is to run over itself uninstalling 2010 and then installing it again it fails with ExitCode 30066. Can that be this issue aswell? The difference here and mine is that my installation went fine. My uninstall on the otherhand failed.

  25. Chungalin says:

    Missing LIS is a problem too when installing Office 2003 Service Pack 3 (SP3). I always mark "Delete installation files" in my Office setups and/or delete the C:MSOcache folder. No problems until SP3 refused to install. Even trying to perform a repair
    setup failed! The only workaround has been to delete and disable LIS with LISTool.

  26. Steffen says:

    Thank you so very much. Just had the same problem with an Office 2013 installation and an existing office 2003 and your solution worked just as well.

  27. Gilson Ladeira says:

    It doesn't solve my problem…

  28. charlie says:

    the registry keys delete worked for me.