Fastrack Blog

Adding Components to Existing Microsoft Office 2010 Installations

Written by Yoni Kirsh | May 11, 2012

I recently came across a particularly strange issue whilst helping a customer with their Office 2010 Upgrade. Let me step you through the scenario. The customer was using Office 2003 across their fleet when an Exchange 2010 upgrade took place. They wanted to realise the benefits of Outlook 2010 together with their new environment, however they weren’t ready for the other Office 2010 applications, so they opted to Installed Office 2010 Pro Plus, and switch off all components except for Outlook in their .MSP config file.

The net result was a fleet of PCs with Office 2003 installed, along with Outlook 2010. Great… now fast forward to the present time, they customer is ready for the rest of Office 2010 and start planning to deploy it. If you took a look on one of their PCs, you would notice both Microsoft Office 2003 Professional and Microsoft Office 2010 Professional Plus appear under Programs and Features already, which different components installed from each (Outlook from 2010 and everything else from 2003).

So what should we do? In my experience, the cleanest approach here would be to scrub the Office 2003 installation from the machine, then run Office 2010 setup in maintenance mode with a Config.XML which would add in the extra Office 2010 components. Easy right?

I started by creating a Config.xml file to modify the existing Office 2010 installation, I stored it in the root of the Office 2010 installation media. The contents of the xml file were something like this…

<Configuration Product="ProPlus">

 

     <Display Level="Basic" CompletionNotice="no" Reboot="ReallySuppress" SuppressModal="yes" AcceptEula="yes" />

     <Setting Id="SETUP_REBOOT" Value="Never" />

 

     <OptionState Id="ACCESSFiles" State="Local" Children="force" />

     <OptionState Id="EXCELFiles" State="Local" Children="force" />

     <OptionState Id="GrooveFiles" State="Local" Children="force" />

     <OptionState Id="OneNoteFiles" State="Local" Children="force" />

     <OptionState Id="OUTLOOKFiles" State="Local" Children="force" />

     <OptionState Id="PPTFiles" State="Local" Children="force" />

     <OptionState Id="PubPrimary" State="Local" Children="force" />

     <OptionState Id="WORDFiles" State="Local" Children="force" />

     <OptionState Id="XDOCSFiles" State="Local" Children="force" />

     <OptionState Id="SHAREDFiles" State="Local" Children="force" />

     <OptionState Id="TOOLSFiles" State="Local" Children="force" />

 

</Configuration>

Once this was done, I could run the setup in maintenance mode, using the following command line.

Setup.exe /modify ProPlus /config Config.xml

So I put this together, everything is going fine, and then the setup fails out, with …

Error 1706. Setup cannot find the required files.  Check your connection to the network, or CD-ROM drive.

Interesting…. it would seems somewhere along the line the Microsoft Office Cache (MSOCache) has become corrupted. OK, well I guess the thing to do is delete the C:MSOCache folder and try again. Setup should detect that the cache is gone and re-cache the required files before kicking off the upgrade. There is also a registry key located at

HKLMSoftwareMicrosoftOfficeDelivery

Which contains information about the contents and location of the MSOCache. So let’s delete that also, just to be on the safe side.

So I carried out these 2 steps and tried the setup process again, however this time, the setup launched then failed maybe 10 seconds later before closing out. I checked the logs and found a similar error, 1706, essentially suggesting that there were missing files from the MSOCache…. of course the files were missing, I deleted them, the idea was that setup would detect this and re-cache the correct files. Just to clarify, I launched Setup.exe without the Config.xml arguments and manually stepped through the process of added the additional Office components, which worked first go! So it would seem that Setup.exe behaves differently when run in maintenance mode with a config file, even if it is essentially performing the same task. When run with a config file, Setup doesn’t check or re-populate the MSOCache.

Righto, well I can’t really change that behaviour, so I guess I need to get the MSOCache in place before running the maintenance mode task, in order for the required files to be available when required. The Office installer has a built in provision for this task, which I leveraged by creating the following CacheConfig.xml file.

<Configuration Product="ProPlus">

 

     <Display Level="Basic" CompletionNotice="no" Reboot="ReallySuppress" SuppressModal="yes" AcceptEula="yes" />

     <Setting Id="SETUP_REBOOT" Value="Never" />

 

 

 

     <LIS CACHEACTION="CacheOnly" />

 

</Configuration>

I ran this config and the Office installer re-populated the MSOCache and completed without error. Great! now I should be able to run my original setup action in maintenance mode, however when I do… same result.. error 1706, files missing from the MSOCache.

Not to be deterred I took a closer look at the MSOCache, and noticed that it only contained the required files to install Outlook, not the entire suite. It would appear that rather than caching all Office files, the <LIS CACHEACTION="CacheOnly" /> inclusion in the config causes setup to evaluate which Office components are currently installed and only cache the binaries for these components. I guess this makes sense in the context of pre-caching installation media whilst minimising network traffic etc, however it doesn’t really help us here where we are looking to change which components are installed. In order to give setup a hint as to which binaries needed to be cached, I created the following CacheConfig.xml file.

<Configuration Product="ProPlus">

 

     <Display Level="Basic" CompletionNotice="no" Reboot="ReallySuppress" SuppressModal="yes" AcceptEula="yes" />

     <Setting Id="SETUP_REBOOT" Value="Never" />

 

     <OptionState Id="ACCESSFiles" State="Local" Children="force" />

     <OptionState Id="EXCELFiles" State="Local" Children="force" />

     <OptionState Id="GrooveFiles" State="Local" Children="force" />

     <OptionState Id="OneNoteFiles" State="Local" Children="force" />

     <OptionState Id="OUTLOOKFiles" State="Local" Children="force" />

     <OptionState Id="PPTFiles" State="Local" Children="force" />

     <OptionState Id="PubPrimary" State="Local" Children="force" />

     <OptionState Id="WORDFiles" State="Local" Children="force" />

     <OptionState Id="XDOCSFiles" State="Local" Children="force" />

     <OptionState Id="SHAREDFiles" State="Local" Children="force" />

     <OptionState Id="TOOLSFiles" State="Local" Children="force" />

     <LIS CACHEACTION="CacheOnly" />

 

</Configuration>

This time I had it right! the Office Installer re-cached the entire set of binaries, which allowed the setup to run in maintenance mode without error. Quite a peculiar scenario I must admit, I was certainly pleased to have resolved it. It’s worth mentioning that I have not come across this behaviour before with various different Office installations, which is strange because I quite often will have to run the Office Installer in maintenance mode to add or remove Office components, so why did I not run into this up until now? It would seem that the behaviour is only exhibited when the initial Office 2010 installation contains Outlook, and only Outlook. Any other combination and the installer caches the files without incident. For example we often will only deploy Word, Excel and PowerPoint for a client, and create a config to run in maintenance mode which will add say, Publisher, as and when required. This scenario would work just fine……?

The summarise, here are the steps required to add the remaining components to an existing Office installation which only has Outlook installed.

  • Remove the previous versions of Office
  • Delete the C:MSOCache folder
  • Delete the HKLMSoftwareMicrosoftOfficeDelivery registry key
  • Re-populate the MSOCache - Setup.exe /config CacheConfig.xml
  • Run the setup - Setup.exe /modify ProPlus /config Config.xml

I hope this information is of some value to you, catch you soon .