Source Resiliency?

Applications that rely on network resources for installation-on-demand are susceptible to source failures if the source location should change for any reason or become damaged. The Windows Installer provides source resiliency for features that are installed on-demand by using a source list. The source list contains the locations searched by the installer for installation packages. The entries in this list can be network locations, Uniform Resource Locators (URLs), or compact discs. If one of these sources fails, the installer can quickly and seamlessly try the next. This can be done before, during or after the time of initial deployment in several ways:

* Transform Editor: Some MSI applications (such as Office XP) come with install customization tools that allow you to set this property through a wizard. There are also other third-party editing tools that will allow modification of the MSI tables. An admin can create a transform based on customization changes, which can then be applied at install time.

* Command line: Perhaps the easiest method for setting source paths is to pass in the SOURCELIST property at the command line when an application is initially installed. The parameter must be passed in at the end of the command line, after the package file location. For example, to install an MSI file named Myfile.msi, specify the following command line:

msiexec.exe /I \\myserver\share\myfile.msi SOURCELIST="\\Distsvr1\myfile\sourcefiles;\\Distsvr2\myfile\sourcefiles; \\distsvr3\myfile\sourcefiles"

* Programmatically: An application that is already installed can be modified through:

1. Windows Installer APIs (MsiSourceListAddSource) can add to the existing list of source paths. This also allows for management of more than the 26 source paths that can be specified at install time.

2. Windows Installer Object Installer.AddSource. The AddSource method of the Installer object adds a source to the list of valid network sources in the sourcelist.

VBScript Code

Dim wiInstaller

Set wiInstaller = CreateObject("WindowsInstaller.Installer")

wiInstaller.AddSource "{5460609D-AAED-4F1D-98B2-55D2D233268E}", "", "\\server1\share\adminpoint"

wiInstaller.AddSource "{5460609D-AAED-4F1D-98B2-55D2D233268E}", "", "\\server2\share\adminpoint"

wiInstaller.ForceSourceListResolution "{5460609D-AAED-4F1D-98B2-55D2D233268E}", ""


Installation of the application creates registry keys under "HKEY_CLASSES_ROOT\Installer\Products\[Converted Product-Code]\SourceList" and always use whenever source is required.

[Converted Product-Code] = It actually converts you product-code like this. Opposite of first 3 sections and then swap two digits for last 2 sections.

For Example: -

5460609D-AAED-4F1D-98B2-55D2D233268E becomes

D9060645 DEAA D1F4 892B 552D2D3362E8