Frequently Asked Questions

InstallShield 2020

This section lists common questions (sorted by topic) and provides links to answers. Where the techniques or steps to perform a specific task are different in different project types, answers for each project type are displayed.

Project Types

Which project type should I use?
How do I convert my project to a different project type?
Why do I get “error C8025 ‘INSTALLDIR’: undefined identifier” when compiling my script after conversion?
Why do I get the following error: “String PRODUCT_NAME was not found in string table”?

Files and Folders

What is the difference between INSTALLDIR and TARGETDIR?
How does Windows Installer determine whether to overwrite an existing file?
How do I register a COM server?
How do I install, start, stop, delete, uninstall, or configure a Windows service?
How do I create an empty folder?
How do I set a key file for a dynamic file link?
What happens if I put more than one executable file in the same component?

Features and Components

How do I conditionally select a feature?
How do I conditionally hide a feature?
Why should I use uppercase directory identifiers when setting component destinations?
How do I change the value in the Link To column for a component?

Redistributables

How do I add the Windows Installer to my project?
How do I add the .NET Framework to my project?

Shortcuts

How do I create an Internet shortcut?
How do I create a shortcut to a folder?

Registry

How do I read data from the registry?
How do I write a property’s value to the registry?

InstallScript

How do I find out what sort of built-in functions are available in the InstallScript language?
What is the maximum number of statements that I can use in a compiled script file? What other limits exist for InstallScript?

INI Files

How do I read data from an .ini file?
How do I get all key names from an .ini file?

Properties

How do I get or set a Windows Installer property in InstallScript?
Why does my deferred custom action show a blank value for a Windows Installer property?

Conditions

How do I detect administrator privileges?
How do I detect a first-time installation?
How do I call a function only during the installation sequence?
How do I detect if the user has selected a specific feature?
How do I detect if the user is running a particular operating system?

End-User Interface

How do I populate a list box at run time?
How do I display a file browse dialog?
How do I display a network browse dialog?

Custom Actions

How do I search for a file on the end user’s system?
How do I launch my application after the installation is complete?
How do I place a file in the .msi database and extract it during run time?
How do I exit the installation from within a custom action?
How can I use the INSTALLDIR variable after I have created a custom action that runs VBScript code?
How can I change ODBC properties (like DBQ and SystemDB) through script?

SQL Scripts

How do I override the default SQL run-time behavior?
How can I control the execution of a SQL script based on certain conditions in an InstallScript project?
How do I enforce a server-side installation in an InstallScript project?
How do I enforce a SQL server-side installation in a Windows Installer-based project?
How do I handle SQL run-time errors?
How do I ensure that my SQL scripts run only against a full of SQL Server?

Building Releases

How do I build my release from the command line?
How do I change project settings from the command line?

Deployment

How do users run my installation in silent mode?

Uninstallation

How do I remove files that were created by my product?
How do I remove registry data created by my product?

Answers to many other questions are available in the Knowledge Base.