Step 1: Start with a clean Windows operating system
When using the snapshot method to virtualize an application, it is important to start with a clean system so that no components are missed during the capture and diff process.
The snapshot process can be performed on a virtual machine or a physical machine. Typically a virtual machine is used so that the system can easily be reset in case the process needs to be repeated.
There are many options for virtual machine software including VMWare Workstation, Oracle Virtual Box (free) and Microsoft Virtual PC. In this example I’ll be using Microsoft Virtual PC.
If you require compatibility with Windows XP, you should snapshot on Windows XP. Otherwise, Windows 7 32- or 64-bit is fine.
Step 2: Install Spoon Studio
Spoon Studio can be downloaded from http://www.spoon.net/studio.
Step 3: Using the Wizard, capture the initial state of the system
Select the third option in the Wizard, Snapshot a third-party application.
Select “Next” on the following screen to capture the “before” snapshot.
Step 4: Install and configure Chrome 24
Chrome can be installed in two different locations on the system. The standard location is underneath the Current User profile. There is another installer available on the Google website for installing Chrome under the All Users profile. In this example the default location will be used, but both approaches will be discussed in the following steps.
Step 5: Capture the “after” snapshot and compute deltas
After configuring Chrome, shut down the application (ensure it is not running in the background by checking the system tray and task manager) and return to the Spoon Studio wizard. Click “Next”.
Now run the “after” snapshot which will compute the deltas and create the virtual application configuration.
Step 6: Select a startup file
The correct startup file should already be selected, but if not select one from the list or select multiple using the Multiple button.
Step 7: Select the sandbox location
The default sandbox location is stored under the Current User profile. Changing the sandbox location is not recommended unless there is a specific reason to use another sandbox location.
Step 8: Select the output file
Select the location where the output executable will be built. This should be stored in the same location as the virtual application configuration file (snapshot.xappl).
Step 9: Save the configuration
This is the final step of the wizard where it is recommended to save the configuration. There are still some edits to be made specifically for Chrome, so there is no need to build and run Chrome yet.
Step 10: Save a copy of the original configuration file
Save the configuration file under a new name. This will preserve the original configuration. If a mistake is made during the process of editing the configuration you can revert to the original configuration file.
Step 11: Filesystem configurationSince it is possible for Chrome to be installed in two locations, there is a possibility of conflict between the virtual application and an installed version of Chrome. To avoid this problem, set these folders to FULL isolation in the configuration:
Step 12: Registry configuration
The same logic from Step 11 applies to the registry as well. In this case, set these keys to FULL isolation:
In addition, set this key to WriteCopy isolation:
Note: if these keys do not exist, you'll need to create them with the "New Key" button.
Remove this key from the virtual registry:
Step 14: Remove Update folder
Generally we recommend turning off automatic updates for virtual applications in order to prevent any unplanned updates from the software publisher.
If you would like to turn off automatic updates for Chrome, delete these folders if they exist:
Step 15: Remove PepperFlash folder
The latest release of PepperFlash is not supported by Spoon. Delete the folder “PepperFlash” under Local Application Data > Google > Chrome > User Data to revert to the older version of the Chrome Flash player.
Step 16: Set additional configuration settings
Go to Settings > Process Configuration and select “Always launch child processes as current user” and “Enable window class isolation”. The first setting is to ensure that all child processes have the same permissions as the running user and the second setting is to ensure that different versions of Chrome can run side by side.
Step 17: Edit the Preferences fileSave the configuration. In a text editor, open the Preferences file located at:
- Files\@APPDATALOCAL@\Google\Chrome\User Data\Default
In this file, verify that the default browser check is turned off:
In addition, edit the Preferences file to prompt for a location to save downloads:
Save the file. Reload the configuration in Studio.
Step 18: Build and run
After saving the configuration, click the Build and Run button.
Step 19: Test on a clean system
After running the application, copy all of the configuration files to a repository where the virtual application builds are stored. If at any point in time the application needs to be rebuilt, all of the necessary files should be available.
For testing, you will need system(s) available that represent the target environment(s) where the application is going to be deployed. If you are using a virtual machine for the build, then the virtual machine can be reset to a clean state, and can be used to test the virtual Chrome executable on a system where Chrome is not installed.