Miscellaneous Frequently Asked Questions

Why doesn't the repackaged installer work correctly?

Please note that the import features in Advanced Installer (the Repackager, the Import MSI feature etc.) are intended to be used to get a starting point for your installation package, not to completely reproduce other installation packages. The Repackager tool captures only the effects of the installation (the changes made on the system). If the original installation package executes custom code (programs, scripts etc.) then only the effect will be captured (registry entries, files and folders etc.). Also, after repackaging an installation some adjustments may be necessary in order to obtain a working installation package.

Why doesn't the repackager start on my Hyper-V virtual machine?

When repackaging in Hyper-V machines the process could hang on waiting for the Advanced Installer tools (osprovision) to get installed. This usually happens because autorun is disabled by default on Hyper-V machines.

To get past this issue you can browse to This PC / My Computer and double click the Advanced Installer tools image that gets mounted automatically. Another way is to copy and install osprovision.exe from the following location, then save the snapshot:

C:\Program Files (x86)\Caphyon\Advanced Installer 13.0\bin

Once the tools are installed the repackaging process can continue.

How can I select multiple components in the Organization view?

Organization view uses a native TREE control that does not support multiple components selection.

However, a workaround to select multiple components in the Organization view is the following:

  • Select a component.
  • From the context menu, use the Add to list OR press F4. This will add the component to a list that appears under tree, at the bottom of the page. Repeat this step for every desired component.
  • On the bottom view is the list where components were added. From the context menu options you can select the common properties for those components.

Why are my files and registry entries not being removed during uninstall?

During an uninstall, Windows Installer removes only the data registered into the MSI file. All other data created by custom actions, by the installed application or by the user is not registered in the MSI, therefore it will not be removed. If you want to also delete this data, you need to use the "Uninstall Cleanup" wizard available from the context menu when a folder is selected in the Files and Folders Page.

Why is the disk space consumed by the installation so much larger than the actual sizes of the files I am installing?

When launching an installation, Windows Installer calculates the space required by adding the size of the resources which will be installed with the size needed for rollback. Also, some space is required for the installation script and for the cached package. Additionally, the installation runs from a temporary copy of the package, therefore more space is required. Basically, an installation requires much more space than just the size of the files it creates.

Why does my package prompt for a reboot?

An installation will require a reboot if it tries to overwrite a file which is in use. After a reboot is performed, the file will no longer be used and Windows will be able to overwrite it. Windows Installer may also require a reboot if this is explicitly requested by the package through the REBOOT property.

Why is a Windows Installer progress bar showed when I launch my installed application?

One of the features offered by Windows Installer is self-healing for the installed application. Therefore, if Windows Installer detects there is an important resource missing, it will automatically repair the installation and show a progress bar.

The progress bar may also be showed by an on-demand installation. This is usually caused by an Advertised shortcut.

How do I create a log of the installation process?

A log of the installation can be created by using the /L*V parameters when launching the MSI through the Msiexec command line. For more details please see the Create a log How-To or the Write a specific Event in the log How-To.

How do I remove a broken installation?

Sometimes a package cannot be uninstalled (for example, it contains a custom action which cannot run). This broken package can be removed by following these steps:

  • open the package's Advanced Installer project
  • fix the problem
  • build the project
  • use this command to recache the MSI:
msiexec /fv <path_to_new_msi>

NoteNote that in the above command you need to specify the modified MSI's actual path.

After the modified MSI replaces the cached one, you can run the uninstall again.

Microsoft has also automatized most common uninstall problems into the Fix it program.

Another deprecated way of repairing a broken installation is by using the Windows Installer Cleanup utility or the "MsiZap.exe" tool from the Windows SDK. Note that these tools remove only the Windows Installer information for the package, the installed resources must be manually removed.

NoteMicrosoft has removed Windows Installer Cleanup utility and "MsiZap.exe" tool from the recent versions of the SDK.

How do I add an EULA to my package?

The EULA can be very easily displayed using our predefined dialog "LicenseAgreementDlg". All you have to do is add it to the installation dialogs from the Dialogs page. Here are the steps to do that:

  • go to Dialog Editor page and right click in the "First Time Install" tree
  • from the context menu select option "Add Dialog..."
  • select "LicenseAgreementDlg" from the available dialogs list
  • now that you added the dialog, you just have to set the according .RTF file that will be displayed during installation

ImportantPlease note that you should use a valid .RTF file, not just a simple file to which you have changed the extension to .RTF.

After following the above steps you should have a new dialog displayed in the installation sequence containing the text specified by your file.

Why can't a mixed 32/64-bit package be launched with Msiexec?

The Windows Installer engine does not support mixed 32/64-bit packages. However, we implemented this feature in Advanced Installer by using the EXE bootstrapper. Therefore, a mixed 32/64-bit package will work as expected only when it is used through the EXE file.

Why does Windows Installer ask for the original package during a Repair?

When a package is installed, Windows caches the MSI by placing it in the Windows\installer folder. During this process, all the unnecessary information is removed in order to decrease the size of the file. When a Repair is called, some data required may not be found in the cached MSI. In this case, Windows Installer will prompt the user for the original package in order to retrieve the data it needs.

Why are the paths changed after moving the project on another machine?

By default, the paths used in an Advanced Installer project are relative to the project file. Therefore, when you move the project file you also need to make sure you move the files used in the project in order to maintain the relative paths.

The type of the paths (relative or absolute) can be changed in the Project Settings tab of the "Edit Project Settings" dialog. You can get to this dialog by using the "Project" -> "Options" menu in Advanced Installer. Note that you can also use path variables instead of relative paths.

Is it possible to store the product version in the registry at install?

Advanced Installer allows you to create or modify registry entries through the Registry page. When you create a new registry value, you can specify [ProductVersion] in the Data section of the Edit Registry Entry dialog. This way, the registry entry will contain the version of the package.

Why do I get an error when submitting my .MSI to Intel AppUp?

  • "Shortcut Target field - The Target entry of the Shortcut table must be a valid feature name/foreign key (Identifier data type) in the Feature table."
    The solution for this error is to enable the "Advertised shortcut" option from the shortcut's properties dialog. You can access this dialog from the shortcut's context menu or by double-clicking it in the Files and Folders page.

Why does the security prompt show a random name for my package although I specified one in Build page?

The information displayed on the security dialog is collected from the digital signature of the package. In this particular case if you set the “Description” field from the Digital Signature Page it'll display the correct package name.

How do I localize user or group accounts?

This is useful when setting a folder's permissions for example. It is known that in Windows Installer only Everyone and Administrators are the same for all languages and all other account names should be localized.

Advanced Installer automatically performs the localizations when using one of the following "Users and Groups" properties:

  • USR_ANONYMOUS
  • USR_GUEST
  • USR_ADMINISTRATOR
  • USR_KEY_DISTR_CENTER_SERVICE
  • USR_NETWORK_SERVICE
  • GRP_GUESTS
  • GRP_USERS
  • GRP_AUTHENTICATED_USERS
  • GRP_POWER_USERS
  • GRP_LOGGING_USERS
  • GRP_MONITORING_USERS
  • GRP_REMOTE_DESKTOP_USERS
  • GRP_DOMAIN_USERS
  • GRP_DOMAIN_COMPUTERS
  • GRP_DOMAIN_CONTROLLERS
  • GRP_RID_INCOMING_FOREST_TRUST_BUILDERS
  • GRP_REPLICATOR
  • GRP_RAS_SERVERS
  • GRP_PREW2KCOMPACCESS
  • GRP_NETWORK_CONFIGURATION_OPS
  • GRP_ACCOUNT_OPS
  • GRP_SERVER_OPS
  • GRP_PRINT_OPS
  • GRP_BACKUP_OPS

Why isn't the install language preserved during maintenance or uninstall?

You can experience this behavior when using multilingual packages.

The solution is to set the same ProductCode for all languages from the Product IDs Tab.

How do I show a single "Uninstall/Change" button instead of a button for each operation in Control Panel?

This is a widely used approach and can be achieved by enabling Use a single "Uninstall/Change" button instead of separate buttons for each operation option in the Product Details Tab from Product Details page.

Why the environment variable created during the installation is not accessible?

The modifications to the environment variables do not result in an immediate change. The list of environment variables is being loaded when the process is initialized but not refreshed. In order to have the newly created environment variable you can have a custom action that will force a refresh of the environment variables. Basically you need to broadcast a settings change message to all windows in the system so that any interested application can perform an update.

For details, please check the How to propagate environment variables to the system article.

Why a feature is not installed when its install condition is true?

This may happen if you set by default the installation behavior of your feature to Disabled. As a workaround solution you can set it to Not Installed.

A feature will be installed if at install time its install conditions are evaluated to true. At install time the feature install conditions are evaluated during the "CostFinalize" standard action, before the installation UI appears. During this standard action the feature state (Installed, Not Installed or Disabled) is set accordingly with its condition evaluation. Afterwards if the evaluation of the feature condition changes, for instance during installation UI, Advanced Installer uses its own custom action (Update Features Install States) to update the feature state accordingly with its new condition evaluation.

Unfortunately, due to a limitation of the Windows Installer API our custom action cannot update the state of a feature whose state was originally set to Disabled. This is not allowed by Windows Installer. So, the only workaround to avoid this limitation would be to set by default your feature installation behavior to Not Installed.

Why I cannot access a network drive?

This behaviour may occur when running on Windows Vista or above with User Account Control enabled and you try to access a network drive from an elevated process. The problem occurs because User Account Control treats members of the Administrators group as standard users.

For details, please check the Programs may be unable to access network locations in Windows Vista or newer operating systems.

Why doesn't the Advanced Installer extension work with Visual Studio 15 release preview?

This usually happens when the lightweight edition of Visual Studio 15 release preview is installed. The extension requires features from the full edition to work as expected.

Why do I receive an error during the import of a Visual Studio solution?

You may receive the Failed to open the solution file [...]. Invalid file format error message during the import of a Visual Studio solution if you are using the Express edition of Visual Studio. In the Express edition of Visual Studio some features that are required to import a solution are missing, thus the import operation fails.

Why doesn't my custom condition get evaluated when set from the Table Editor?

This can happen when using Advanced Installer special properties in your condition. These properties usually have AI_ prefix and some of them only get resolved when referenced from a Smart Condition Edit Control.

The workaround for this limitation is to use the properties in a condition field which is a smart condition control. For instance you can create a dummy custom launch condition that will never trigger.

Just go to "Launch Conditions" page -> "Custom" tab and add a new launch condition like this:

  • Condition: (AI_DETECTED_MINOR_UPGRADE) OR (1=1)
  • Description: Dummy launch condition used to resolve the AI_DETECTED_MINOR_UPGRADE property. This launch condition will never be triggered.

How do I integrate into Team Foundation Server?

To integrate Advanced Installer into Team Foundation Server, follow the steps below:

  1. Have a Visual Studio Online account
  2. Deploy an agent on Windows
  3. Install Advanced Installer Visual Studio Plugin on your host agent
  4. Install Advanced Installer Tool Installer on your host agent
  5. Configure the build process similar to how is shown in the 'How to use' section

How do I use Advanced Installer for an Excel-DNA project?

Excel-DNA is a project that integrates .NET into Excel. To easily distribute this type of project, for example a Microsoft Excel Add-on, check out the following article about how to use Advanced Installer for an Excel-DNA project.

Why do I get "The server understood the request, but is refusing to fulfill it." error?

This message is a standard HTTP response with the code 403. For details, check the HTTP Status Codes article.

Basically, the permissions on your server prevent the Updater from accessing it. Make sure that the URLs you are using work in Internet Explorer on a clean machine.