The TRANSFORMS property is a list of the transforms that the installer applies when installing the package. The installer applies the transforms in the same order as they are listed in the property. Transforms can be specified by their filename or full path. To specify multiple transforms, separate each file name or full path with a semicolon (;). For example, to apply three transforms to a package, set TRANSFORMS to a list of file names or to a list of full paths.
You can indicate that a transform file is embedded in a storage of the .msi file, rather than as a stand-alone file, by prefixing the filename with a colon (:). For example, the following example indicates that transform1.mst and transform2.mst are embedded inside the .msi file and that transform3.mst is a stand-alone file.
The installer requires the transforms listed in TRANSFORMS at every installation, advertisement, installation-on-demand, or maintenance installation of the package. The TransformsSecure policy policy, the TRANSFORMS property, and the first character of the TRANSFORMS string informs the installer how to handle the source resiliency of stand-alone transform files. Windows Installer treats setting TransformsAtSource policy or TRANSFORMSATSOURCE the same as TransformsSecure policy and TRANSFORMSSECURE. Note that transforms embedded in the .msi file are not cached and are always obtained from the package.
TRANSFORMS Property
Transforms Secure
Caching and Resiliency
@[list of filenames] Example: @transform1.mst;transform2.mst; transform3.mst
No effect.
Secure-At-Source transforms. The source of the transforms must be at the root of the source for the package. When the package is installed or advertised, the installer saves the transforms on the user's computer in a cache where the user does not have write access. If the local copy of the transform becomes unavailable, the installer searches for a source to restore the cache. The method is the same as searching the source list for an .msi file. See Source Resiliency.
[list of paths] Example: \|\\server\share\path\transform1.mst;\\server2\share2\path2\transform2.mst
No effect.
Secure-Full-Path transforms. The source of each transform must be at the full path passed to TRANSFORMS. The transform source does not have to be located at the source of the package. When the package is installed or advertised, the installer saves the transforms on the user's computer in a cache where the user does not have write access. If the local copy of the transform becomes unavailable the installer can only restore the cache from the source at the specified path.
[list of filenames] The first character is not @ or |. Example: transform1.mst;transform2.mst;transform3.mst
Unsecured Transforms. The source of the transforms must be at the root of the source for the package. When the package is installed or advertised per-user, the installer saves the transforms in the user's profile. This enables a user to roam between computers while maintaining their customizations. For a per-machine install, the transform is saved in the %windir%\Installer folder. If the local copy of the transform becomes unavailable the installer searches for a source to restore the cache. The method is the same as searching the source list for an .msi file. See Source Resiliency.
[list of paths] The first character is not @ or |. Example: \\server\share\path\transform1.mst;\\server2\share2\path2\transform2.mst
Unsecured Transforms. When the package is installed or advertised per-user, the installer saves the transforms in the user's profile. This enables a user to roam between computers while maintaining their customizations. For a per-machine install, the transform is saved in the %windir%\Installer folder. If the local copy of the transform becomes unavailable, the installer searches for a source to restore the cache. The method is the same as searching the source list for an .msi file. See Source Resiliency.
You cannot use filenames and paths together in the same TRANSFORMS list. You cannot specify secure and profile transforms together in the same list. You may include transforms embedded in the package in a list with other transforms.
Note that because the list delimiter for transforms is the semicolon character, semicolons must not be used in a transform filename or path.
Remarks
In cases where the TransformsSecure policy or the TRANSFORMSSECURE property has been set with Windows Installer, it is not necessary to pass the @ or | symbol when setting TRANSFORMS using the command line. The installer assumes Secure-At-Source or Secure-Full-Path if the list consists entirely of file names located at the source or consists entirely of full paths. You still cannot mix the two types of transform sources.
Note that the installer uses a different search order for unsecured transforms applied during first time and maintenance installations. For more information, see Unsecured Transforms.
Requirements
Requirement
Value
Version
Windows Installer 5.0 on Windows Server 2012, Windows 8, Windows Server 2008 R2 or Windows 7. Windows Installer 4.0 or Windows Installer 4.5 on Windows Server 2008 or Windows Vista. Windows Installer on Windows Server 2003 or Windows XP. See the Windows Installer Run-Time Requirements for information about the minimum Windows service pack that is required by a Windows Installer version.
Reference article for the msiexec command, which provides the means to install, modify, and perform operations on Windows Installer from the command line.
A transform is a collection of changes applied to an installation. By applying a transform to a base installation package, the installer can add or replace data in the installation database. The installer can only apply transforms during an installation.
Command-line options for msiexec.exe for Windows Installer 3.0 and earlier. Provides a table showing options, parameters, and descriptions. Examples showing how to install products and other tasks.