DSM MSI Repackager
General Information
You use the MSI Repackager to generate a new DSM MSI Package containing an MSI-based software from an existing eScript package belonging to a legacy application.
The Repackager replaces the converted script commands with the MSI-based software - the “migrated” parts of the original script are therefore deleted.
If the original script (legacy application) has already been executed on managed computers, you should retain it - in order to be able to e.g. post-install an element (user or computer element) that has not yet been installed. The Repackager therefore enables you to create a copy of the original. The Repackager then edits this copy and, in this case, the original is preserved.
User-related customizations to the eScript Package are also adopted and executed in the MSI-based software as extensively as possible by the Repackager. Following execution of the MSI Package on the managed computers, however, they cannot be changed easily. Consider, therefore, whether you want this, or whether it would be easier for you to make these customizations outside the MSI-based software.
Background Information on Repackaging
The conversion process involves several steps:
- The Repackager
displays the variables contained in the “legacy application” package.
These variables are adopted as public properties into the MSI-based software.
Fixed default values must have been defined for the properties in the MSI-based software. The Wizard suggests default values (if the variables can be resolved). You can change these default values. - The Repackager analyzes the eScript Package and displays the analysis results, e.g. what commands in the original package cannot be converted.
- Using the eScript commands that can be migrated, the Repackager generates an MSI file.
- The commands of the original eScript Package that cannot be adopted into the MSI-based software are adopted unchanged into the new DSM MSI Package.
- If the associated program files are smaller than 10 MB, the program files will be stored inside the MSI file. (The Repackager will create internal .CAB files.) Otherwise, the program files will be stored in the package directory’s Extern$ subdirectory by default.
- The DSM MSI Package is stored together with the MSI-based software in the package directory.
Notes for MSI Insiders
If possible, the MSI Repackager generates MSI Entry Points for...
- COM servers
- ProgIDs
- File extensions
- Shortcuts
This means that the generated MSI-based software offers the best possible MSI AppRepair functionality.
Repackager Scope of Features
The Repackager tries to adopt as many commands as possible from the legacy application package into the MSI-based software. The conversion has limits, however, some of which are imposed by the MSI technology, and some of which come from the Repackager logic.
Migration of Variables
- Variables from
the system environment: ClassPath,
Computername, ComSpec,
Homedrive, Homepath,
Homeshare, Logonserver,
Path, Systemdrive,
SystemRoot, Username,
Userprofile
These variables are migrated to the MSI-based software without being resolved, they will be resolved during the application‘s runtime. - Variables referring
to system folders: CommonFilesDir,
ProgramFilesDir, Temp,
Tmp, WinDir,
WinSysDir
Variables referring to system folders will be stored as MSI system folders.
Example: %Windir% is changed to [WindowsFolder]. - Variables referring to non-system folders will be converted to MSI properties. These properties are then used in the directory table.
- Other variables from the legacy application package are stored in the MSI Package as public properties.
Variables stored in the MSI-based software as public properties are automatically used as parameters for the MSIInstallProduct command, using the format: <MSI_Property>=%<Variable>%.
For the execution of the MSI Package, you can define values for these properties in the form of parameters in the MSIInstallProduct command. Again, DSM variables can be used here.
Because of the MSI technology, a fixed default value must be defined for each property.
Commands that can be migrated to MSI
The following eScript commands can essentially be migrated into the MSI-based software:
- AddIni
- CopyFile
- CreateIcon
- CreateLink
- InstallFile
- InstallFileList
- InstallService
- MakeDir
- RegLoad
- Set
There are an array of limitations, however, which means that these commands can only be MSI-migrated, if at all, under certain conditions – see the two following sections.
Commands that can be partially migrated to MSI
If AddINI or InstallFileList commands contain some valid (i.e. can be migrated) and some invalid entries, the “valid” part is migrated. The invalid part is retained as a eScript command.
Commands that cannot be migrated to MSI
Under some circumstances, it may still not be
possible to migrate commands that can essentially be migrated to MSI.
Examples:
- AddIni: Entries in INI files may not exceed a length of 256 characters, nor may they be empty.
- InstallFileList: Commands of this type are adopted if either all the source files are specified in a command (this is the default scenario), or if the source files are referenced with *.*.
- If commands are included in conditions (If...Else...), they are not adopted into the MSI package.
You can output detailed information on the unmigrated commands in a report.
Unsupported commands
Because of the MSI technology, none of the other eScript commands can be migrated. These commands are transferred unchanged into the DSM MSI Package as eScript commands.
Moreover, none of the commands included in conditions (If...Else...) are adopted into the MSI-based software, but instead are transferred unchanged into the DSM MSI Package as eScript commands.
The Repackager logic means it is not possible to migrate packages containing goto statements. The Repackager will reject these packages.
Default settings for the created MSI Package
The MSI Package will be created with the following settings:
- Installation type: Computer-related
- MSI Logging Option: NORMAL
- Advertisement mode: Depending on the settings for the package
You can change these default settings by editing the command MSIInstallProduct.