Office 2007/2010 Packaging Guidelines for Workspace Streaming and Workspace Virtualization

Article:DOC3277  |  Created: 2010-10-26  |  Updated: 2011-02-28  |  Article URL http://www.symantec.com/docs/DOC3277
Article Type
Documentation


Description



Please follow these guidelines when packaging Office:

  • Capture on a system where the Office installation program has not executed. This is a general best practice, but with Office 2010 you might receive a sharing violation if you attempt this.
  • If .NET is not installed on the target endpoints, capture on a computer that does not have .NET installed. Windows Vista and Windows 7 include .NET by default.
  • The most common capture issue with Office products is the dependency on the Visual C++ runtimes. Recommendations are included in the Office 2007 and Office 2010 sections of this guide.
  • We recommend using Wise Virtual Composer if the package is intended for a streaming environment. Wise Virtual Composer provides better handling of advertised shortcuts and the template feature enables additional packaging options.
  • All Office products you want to stream should be distributed in a single package. Office products use a number of shared resources that can cause conflicts when accessed by multiple virtualized applications.
  • Workspace Streaming and Workspace Virtualization 6.1 SP6 or later provide support for virtualizing and streaming Microsoft Office 2010.

 

Office 2007

If you are deploying Office 2007 the simplest packaging method is to capture on Windows XP and then distribute to all platforms. This avoids any errors due to the Visual C++ runtime not being installed on the endpoint. The 32-bit version of Office 2007 can be deployed to 64-bit operating systems. There is no 64-bit version of Office 2007.

If you capture on Windows Vista or Windows 7, you need to ensure that the Visual C++ 2005 SP1 runtime libraries are available on each endpoint. For Office 2007 install the 32-bit runtimes.

See "Visual C++ Runtime dependency on Windows Vista and Windows 7"

Known Issues

The following table contains known issues when virtualizing Office 2007.

Known issue
Workaround
After you deploy 32-bit Office on a 64-bit OS, the initial launch of the help system runs a brief repair. This repair is required to register the help in the correct location as it cannot be registered outside of the Office installation program. This is resolved by the automatic repair.

 

Office 2010

 

The following table contains known issues with virtual Office 2010.

See "Visual C++ Runtime dependency on Windows Vista and Windows 7"

Known Issues

The following table contains known issues when virtualizing Office 2010.

Known issue
Workaround
If you save Microsoft Word files in windows 7 to the Desktop, the file will not show until you refresh the desktop. Refresh the Desktop or access the file by opening Windows Explorer.
You receive an error "BCSSync.exe - Unable to locate Component Body:This application has failed to start because mscoree.dll was not found". Install .NET on the endpoint where this error occurs or recapture on a Windows XP computer that does not have .NET installed.
SWVAdmin displays an error when attempting to export a VSA of Office 2010 on 64-bit operating systems. Use SWVCmd to export a VSA, or use SWVAdmin, SWVCmd, or Wise Virtual Composer to export an XPF.

Microsoft does not support two versions of Microsoft Outlook on the same computer. If you have a version of Outlook already installed or virtualized you might not be able to launch another version.

Due to the number of shared resources used by different versions of Outlook, this is an unsupported configuration.

 

Visual C++ Runtime dependency on Windows Vista and Windows 7

The most common issue encountered when capturing Microsoft Office 2007 and 2010 is handling the dependency on the Microsoft Visual C++ 2005 (Office 2007) or Visual C++ 2008 SP1 (Office 2010) runtime. During Office installation, if the Visual C++ rutime is not available on the computer, Office installs it.
For most applications, installing a dependency is not a problem. The dependency is captured to the layer with the application. With Office however, the installation uses transactions to install the Visual C++ runtime, which causes some of the installation data to be written to the base instead of to the layer.
The easiest way to resolve this issue is to distribute the Visual C++ runtime as part of your base image or through software distribution. This makes it available for Office and all other applications that use this runtime.
If that is not an option, it is possible to capture and deploy Office using Symantec Workspace Virtualization. Since everything is in the base after the installation, the layer will work properly when it is tested on the machine on which it was captured. However, if the layer is migrated from one machine to another, the leaked items that were installed to the base rather than the layer (in this case, Microsoft Visual C++ Redistrutable's registry keys and SxS files) are not present within the layer. Accordingly, Office runs a repair to reinstall all of the missing components. Because this repair is also transcated, everything is again captured to the base, rather than the layer.
In order to successfully capture Office and avoid reoccuring repair installations, install Microsoft Visual C++ Runtime to the base before running the virtualizated application. Because Office expects a specific version, that specific version will need to be installed in order for the capture to be completed properly. More than one version of Visual C++ Runtime can be present simultaneously on a machine, and is it not backwards compatible (like .Net).
See "Visual C++ 2008 SP1"
See "Visual C++ 2005"

In summary, the best practice for capturing Office 2007 or 2010 is to first have Microsoft Visual C++ installed into the base, as opposed to being captured in the layer, prior to capturing Office. You can capture using the above method without the required Microsoft Visual C++ Redistributable in the base, as long as it is installed on the client machine before Office is run. This is because the layer will see what is in the layer before it sees what is in the base. Accordingly, if you have Microsoft Visual C++ Redistributable DLLs in your layer and the base and an update for Microsoft Visual C++ Redistributable that Office requires is released and it is installed to the base, Office will still see the old DLLs that are present in the layer.

Visual C++ 2008 SP1

Office 2010 requires Visual C++ 2008 SP1 Runtime (version 9.0.30729).
Once installed, you can check the Control Panel to ensure that the correct version of Microsoft Visual C++ 2008 SP1 Redistributable was installed.
Checking for the presence of the correct version can also be done via WMI by querying against the Win32_Product object using a script similar to the following:

 

 

The correct version of Microsoft Visual C++ 2008 Redistributable can be downloaded directly from Microsoft at the following link:
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en

 

Visual C++ 2005

Office 2007 requires Visual C++ 2005 Runtime (version 8.0.50727.42, installer version is 6.0.2900.2180).
Once installed, you can check in the Control Panel to ensure that the correct version of Microsoft Visual C++ 2005 Redistributable (version 8.0.50727.42) has been installed.
Checking for the presence of the correct version can be done via WMI by querying against the Win32_Product object similar to the following

  strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery(_
"Select * from Win32_Product " & _
"Where Caption =" _
& " 'Microsoft Visual C++ 2005 Redistributable' AND Version="_
& " '8.0.50727.42' ")
For Each objItem in colSoftware
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Version: " & objItem.Version
Next
 

The correct version of Microsoft Visual C++ 2005 Redistributable can be downloaded directly from Microsoft at the following link:
http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colSoftware = objWMIService.ExecQuery(_
    "Select * from Win32_Product " & _
    "Where Caption =" _
        & " 'Microsoft Visual C++ 2008 Redistributable – x86 9.0.30729.17' AND Version="_
& " 9.0.30726' ")

For Each objItem in colSoftware
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "Version: " & objItem.Version
Next

 

If you deploy Office 2010 you need to perform the capture on the same operating system and architecture on which you play to deploy. This is required due to the significant differences in paths and installed components between platforms. If you use Workspace Streaming, you can select use a preinstallation script to install the Visual C++ runtimes before the application is streamed.

If you capture on Windows Vista/7, you need to ensure that the Visual C++ 2008 SP1 runtime libraries are available on each endpoint. If you use 32-bit Office, install the 32-bit runtimes. If you use 64-bit Office install the 64-bit runtimes.



Article URL http://www.symantec.com/docs/DOC3277


Terms of use for this information are found in Legal Notices