Identifying Properties and Dependencies of .NET Assemblies

InstallShield 2018

Project • This information applies to the following project types:

Basic MSI
DIM
InstallScript
InstallScript MSI
Merge Module

InstallShield offers support for identifying the properties and dependencies of .NET assemblies. The functionality depends on the project type that you are using.

Windows Installer–Based Projects

In Basic MSI, DIM, InstallScript MSI, and Merge Module projects, when you add a .NET assembly to your project, it is recommended that you set it as the key file of its component. No other .NET assemblies should be included in that component.

When a .NET assembly is the key file of its component, you can use one of the following methods to identify its dependencies:

If you know which files and merge modules are required for the .NET assembly, you can manually add them to the same feature that contains the .NET assembly component in your project. This method is recommended, since it gives you the most control over what is included in your project.
If you do not know which files and merge modules are required for the .NET assembly, use one of the following built-in methods:
To identify the .NET assembly’s dependencies on demand, use the Static Scanning Wizard to detect possible dependencies. This wizard displays a list of the dependencies that it finds, and it lets you specify whether you want to include each one in your project. Note that this method is available in Basic MSI and InstallScript MSI projects, but not in DIM or Merge Module projects.
To identify the .NET assembly’s dependencies each time that you build your project, select Dependencies and Properties for the component’s .NET Scan at Build setting. If InstallShield detects any possible missing dependencies at build time, InstallShield incorporates them into the release that it generates.

Configuring the properties of a .NET assembly makes it possible for Windows Installer to update and uninstall the assembly when needed. When a .NET assembly is the key file of its component, you can use either of the following methods to identify its properties:

Manually enter the properties and their values: In the Components view, under the Advanced Settings area for the component that contains the .NET assembly, select .NET assembly subnode under the Assembly node, and configure the properties as needed. Note that the properties and values that you enter must match the information in the assembly’s manifest file. If they do not match, the assembly might be left on the target system when the feature that contains the .NET component is uninstalled.
To identify the .NET assembly’s properties each time that you build your project, select the Properties Only option or the Dependencies and Properties option for the component’s .NET Scan at Build setting. If InstallShield detects any possible missing properties at build time, InstallShield incorporates them into the release that it generates.

InstallScript Projects

In InstallScript projects, when you add a .NET assembly to a component in your project, you can use the component’s .NET Assembly setting to identify the assembly as a local .NET assembly. You can also use one of the following methods for identifying the dependencies of the .NET assembly:

If you know which files and merge modules are required for the .NET assembly, you can manually add them to the same feature that contains the .NET assembly component in your project. This method is recommended, since it gives you the most control over what is included in your project.
If you do not know which files and merge modules are required for the .NET assembly, use one of the following built-in methods:
To identify the .NET assembly’s dependencies on demand, use the Static Scanning Wizard to detect possible dependencies. This wizard displays a list of the dependencies that it finds, and it lets you specify whether you want to include each one in your project.
To identify the .NET assembly’s dependencies each time that you build your project, select Dependencies for the component’s .NET Scan at Build setting. If InstallShield detects any possible missing dependencies at build time, InstallShield incorporates them into the release that it generates.

If Not an Assembly is selected for the component’s .NET Assembly setting, InstallShield does not scan for dependencies of the component’s assembly.

Note that when Local Assembly is selected for the component’s .NET Assembly setting, the installation performs COM interop registration and configures .NET installer class information for the component at run time.

See Also