Working with Advanced Installer from the Command Line
The Advanced Installer command line allows you to create, build or edit projects without using the graphical interface.
- 1. Creating a new project
- 2. Building from command line
- 3. Return codes
- 4. ANT integration
- 5. Load Custom Path Variables
- 6. Executing a file of commands
- 6.1 Example
- 7. Convert MSI to virtualized package
- 8. Run the installer in a virtual machine
- 9. Register Advanced Installer using the command line
- 10. Setting the Repository path
- 11. Getting the Repository path
- 12. Displaying the command line help
- 13. Refresh synchronized folders
- 14. Change the package output type
- 15. Set digital certificate file and password
- 16. Set Azure Key Vault parameters
When calling Advanced Installer from command line you must use the
AdvancedInstaller.com tool. This tool is located in the following folder:
C:\Program Files (x86)\Caphyon\Advanced Installer 16.7\bin\x86, if Advanced
Installer's installation folder is C:\Program Files (x86).
Starting with Advanced Installer v22.0 we create a dedicated Environment Variable named ADVINST_COM that stores the path of AdvancedInstaller.com tool. In case multiple versions of Advanced Installer are installed, the environment variable will contain the latest installed version's path. This environment variable can be used, for example, in certain scripts to call command lines.
1. Creating a new project
The new project command line syntax is:
<path>AdvancedInstaller.com /newproject <project_file_path> { [-type <project_type>] [-lang <project_language>] }
Parameters:
- <path>
- Path to Advanced Installer executable.
- <project_file_path>
- Path to project file (e.g. "C:\Users\Caphyon\Desktop\Advanced Installer\project.aip"). This parameter's value must point to an existing full path, otherwise the operation will fail.
- -type <project_type>
- Specify the project type.
- <project_type>
- The project type. The string can be either of the available project type names in Advanced Installer: professional, , enterprise, architect, patch, msm, update, win-ce, vsix. For the "Simple" project type you must omit the -type switch (e.g. AdvancedInstaller.com /newproject simpleProject.aip)
- -lang <project_language>
- Specify the project language.
- <project_language>
- The project language (e.g. "en" for English, "ru" for Russian, etc.).
- -overwrite
- Include this parameter to silently overwrite any existing project with the same name from the specified location. If this parameter is not specified and a project with the same name already exists, an exception will be thrown.
- -template <template_name>
- Specify the existing template used for creating the new project.
- <template_name>
- The template name. The string must be the name of one of your saved custom templates from Advanced Installer Start Page.
The -template parameter is incompatible with -type and -lang parameters
The order of the parameters in a command line syntax must be respected. If the parameters are written in any other order, the obtained result will not be the one intended.
2. Building from command line
In order to build an MSI from command line, you can use the following syntax:
AdvancedInstaller.com /build <project_file_path> { [-buildslist <builds_list>] | [-configurationslist <configurations_list>] }
Parameters:
- <path>
- Path to Advanced Installer executable.
- <project_file_path>
- Path to project file.
- -buildslist <builds_list>
- Perform a set of builds. All builds are performed if no build is
specified.
- <builds_list>
- list of builds that should be performed; build names should be separated by semicolon (";") characters
- -configurationslist <configurations_list>
- Build a set of configurations. For WinCE projects only. All
configurations are build if no configuration is specified.
- <configurations_list>
- list of configurations to build; configuration names should be separated by semicolon (";") characters
2.1 Performing a clean Rebuild
In order to build the project regardless whether the project was modified and without using any cached files, you can use the following syntax:
AdvancedInstaller.com /rebuild [project_file_path] { [-buildslist <builds_list>] | [-configurationslist <configurations_list>] }
3. Return codes
For a list of Advanced Installer's command line error return codes, please follow Command line return codes article.
4. ANT integration
In order to include Advanced Installer in an ANT build you can add the following target to your build.xml file:
<target name="advinst"> <exec executable="[path]\AdvancedInstaller.com"> <arg line="/build [project].aip"/> </exec> </target>
5. Load Custom Path Variables
Load a list of Path variables to be further used by Advanced Installer.
AdvancedInstaller.com /loadpathvars <path_variables_file_path>
- <path_variables_file_path>
- Loads a new set of path variables from the specified file (XML file).
In order to create an XML file containing your custom path variables you must first create the path variables and use "Save To..." Operation available in Global Path Variables Tab.
6. Executing a file of commands
You can specify a text file containing a series of edit commands that will be executed in sequence.
In order to execute a file of commands you can use the following syntax:
AdvancedInstaller.com /execute <path_to_project_file> <command_file_path> [-nofail]
Parameters
- <path_to_project_file>
- Path of the project to edit.
- <command_file_path>
- Path of the commands file.
- -nofail
- Display all the errors but do not interrupt the execution of the commands file.
When creating a file of commands there are some rules that must be taken into consideration:
- The first line of the file must be ;aic
- One of the following encodings must be used:
- ANSI
- Unicode
- UTF-8
The byte order mark (BOM) is required when UTF-8 and Unicode are used.
If the you want to use special characters like for example "a, ä, o, ö, u, ü, s, ß, %" the .AIC file should be saved using the "UCS2 LE BOM" encoding.
Apart from the usual edit commands, inside the commands file you can use the following command options:
Save | Saves the project. |
---|---|
Build | Builds the project. |
Rebuild | Performs a clean rebuild of the project. |
ResetSig | Resets the digital signature. The effect of this command is equivalent to unticking the option “Enable signing” in the Digital Signature page. This is useful for instance in release candidate builds when signing the package and/or installation files is not required. |
SetSig | Opposite for command ResetSig. The effect of this command is equivalent to ticking the option “Enable signing” in the Digital Signature page. |
To point the location for your files you can also use environment variables, using the separator “%“, like we use for the variable “SAMPLE“ in our example. If your environment variable contains a path with whitespaces then you should use quotes for the entire path.
6.1 Example
;aic SetVersion 1.2 AddFile APPDIR\MyFolder C:\Folder\File.txt AddFile APPDIR\MyFolder “%SAMPLE%File.txt“ SetProperty TESTPROP="TestValue" Save Rebuild
The project will not be modified by the edit commands specified in an AIC file. The Save command must be used explicitly in order to persist the project state after a sequence of edit commands (if this is desired).
7. Convert MSI to virtualized package
Using the Architect edition you can create virtualized packages (AppV 4.x, AppV 5.x and ThinApp) from MSI packages not created with Advanced Installer. This can be scripted so everything is done automatically, as in the following commands file example:
;aic SetOutputLocation -buildname "BuildAppV5" -path "C:\Work\Virtualized Packages\SamplePackage" Build -buildslist "BuildAppV5"
To execute this command file you would call the following:
AdvancedInstaller.com /execute <path_to_MSI_file> <command_file_path>
In the sample from above you see the command ”SetOutputLocation” used to set the folder where you want the virtualized package to be generated, and the command ”Build” used to trigger the build operation of the virtualized page. For both commands you should use only one of the following three build names:
- BuildAppV5 - trigers the conversion of the MSI to an AppV 5.x package
- BuildAppV4 - trigers the conversion of the MSI to an AppV 4.x package
- BuildThinApp - trigers the conversion of the MSI to a ThinApp package
8. Run the installer in a virtual machine
In order to test the installer in a virtual machine, you can use the following syntax:
AdvancedInstaller.com /RunInVM <project_file_path> [-build name] -vmprofile {GUID} [-quiet]
Parameters:
- <path>
- Path to Advanced Installer executable.
- <project_file_path>
- Path to project file.
- -build name
- Optional parameter used to launch a specified build for testing. If this switch is not specified, the default build will be launched for testing.
- -vmprofile {GUID}
- The unique identification number for the profile. Chek the profile GUID in the VM Profile Options.
- -quiet
- The VM Launcher dialog is not displayed.
9. Register Advanced Installer using the command line
To activate Advanced Installer you can use the following syntax:
AdvancedInstaller.com /register <license_id>
- <license_id>
- The license ID which you received after purchasing Advanced Installer.
When there's no Internet connection, the following option applies:
AdvancedInstaller.com /RegisterOffline <file_path>
- <file_path>
- The path of the license file you received from support.
To register with a floating license the syntax is:
AdvancedInstaller.com /registerfloating <host>:<port> [-testconnection]
- <host>
- The license server host name.
- <port>
- The license server port number.
- [-testconnection]
- If this parameter is provided, the connection with the license server is tested. If a license slot is available the return code is 0. If no license slot is available or other error occurs (eg. a network problem), the return code is AI_ERROR_NO_FLOATING_LICENSE (0xE001006D). If this parameter is not provided, the return code is 0.
Optionally, with a floating license, you can use a proxy server to connect through. The syntax is:
AdvancedInstaller.com /cfglicensesrvproxy [-set <host>:<port>] | [-disable]
- -set <host>:<port>
- Set a proxy server to connect through.
- <host>
- The proxy server host name.
- <port>
- The proxy server port number.
- -disable
- Disable connecting through the proxy server.
10. Setting the Repository path
To set the Repository path you can use the following syntax:
AdvancedInstaller.com /SetRepositoryPath <path> [-move]
Parameters:
- <path>
- The new path on disk of the Repository. When used without the -move switch it changes the location without moving the existing Repository resources to the new location.
- -move
- When used it changes the location and moves the existing Repository resources replacing the identical ones.
11. Getting the Repository path
To get the Repository path you can use the following syntax:
AdvancedInstaller.com /GetRepositoryPath
12. Displaying the command line help
Use the following syntax to display the usage for the available command line options:
AdvancedInstaller.com { /help | /? } [<command>]
13. Refresh synchronized folders
Use the following syntax to refresh the synchronized folders in your project:
AdvancedInstaller.com /edit <project_file_path> /RefreshSync [<target_folder_path>]
14. Change the package output type
To change the package type from command-line use the following syntax:
AdvancedInstaller.com /edit <project_file_path> /SetOutputType <packageType> [-buildname <build_name>] [-msi_url <msi_url>]
Package types: MsiInside, MsiOutside, ExeInside, ExeOutside, and WebInstaller
-buildname is optional, if not specified, the command applies to the current build
-msi_url is required only for the WebInstaller package type
Example:
"C:\ai\win\Debug\bin\x86\AdvancedInstaller.com" /edit "Your Application.aip" /SetOutputType WebInstaller -buildname MsiBuild -msi_url "http://www.example.com"
15. Set digital certificate file and password
To set the digital certificate file use the following syntax:
AdvancedInstaller.com /edit <project_file_path> /SetDigitalCertificateFile [-file <certificate_path>] [-password <certificate_password>] [-enable_signing]
Parameters:
- <certificate_path>
- The full path of the digital certificate file, for example: "c:\test\test_certificate.pfx"
- <certificate_password>
- The password associated with the digital certificate
- -enable_signing
- Enable the actual signing
To change the digital certificate password use the following syntax:
AdvancedInstaller.com /edit <project_file_path> /SetDigitalCertificatePassword [-password <certificate_password>]
Parameters:
- <certificate_password>
- The password associated with the digital certificate
16. Set Azure Key Vault parameters
To set the Azure Ket Vault parameters use the following syntax:
AdvancedInstaller.com /edit <project_file_path> /SetAzureKeyVaultParameters [-tenant_id <tenant_id>] [-app_id <app_id>] [-vault_name <vault_name>] [-certificate_name <certificate_name>] [-certificate_version <certificate_version>] [-enable_signing]
Parameters:
- <tenant_id>
- Specify the Azure Tenant ID
- <app_id>
- Specify the Azure App ID
- <vault_name>
- Specify the Azure Vault Name
- <certificate_name>
- The name of the digital certificate file.
- <certificate_version>
- The version of the digital certificate.
- -enable_signing
- Enable the actual signing
Topics
- Return codes
The list of return codes for Advanced Installer command line operations. - Editing
How to edit Advanced Installer projects with command line commands.