InstallShield makes adhering to Setup Best Practices easier by alerting you to Best Practices violations while you create components in the Components view. By following these guidelines, you can create clean installations that distribute reusable components efficiently, and you can avoid the problems that result from file incompatibility.

When you create components in the Setup Design or Components view, the Setup Best Practices Wizard monitors the files that you add to the components, alerts you when you have done anything that conflicts with Best Practices, and then gives you the opportunity to correct the action by using the wizard. To turn off the Setup Best Practice Wizard's automatic scanning of your setup design, use the General tab on the Options dialog box. To access the Options dialog box, on the Tools menu, click Options.

When you add files to components, the Component Wizard identifies files that do not comply with Best Practices by replacing the file icon () with a warning icon (). The Component Wizard also has an option for organizing your files into components according to Best Practices.

InstallShield checks for compliance with the following Setup Best Practices:

- A Component Should Not Contain Multiple .exe, .dll, .ocx, .chm, or .hlp Files—Each component should contain only one portable executable (.exe, .dll, or .ocs) or help file (.chm or .hlp). Windows Installer components are designed so all of the advanced settings and component properties—such as the unique component code—refer to a single portable executable or help file. Place additional .exe, .dll, .ocx, .chm, or .hlp files into new components.

- Use Merge Modules—Merge modules contain all of the files, registry entries, and logic necessary to install a distinct piece of functionality. You should not distribute a file for which a merge module is available. Using merge modules also helps you comply with two related requirements—the Best Practice to avoid associating a file with more than one component, and the Windows logo guideline not to ship any core components.
  If the Best Practices monitoring option is enabled, the Setup Best Practices Wizard alerts you whenever you add to a component any file that is part of a merge module or object that InstallShield provides.

You should also be aware of the following component creation Setup Best Practices, to which InstallShield does not automatically alert you:

- Put a Shortcut Target in Its Own Component—Any file that serves as the target for a shortcut requires its own component. That file must be the key file () for the component.

- Group Other Files into Components—Organize all files that do not fall into any of the above categories in components according to the files' requirements, such as a common destination folder or version checking.

- Do Not Self-Register Files—Instead of calling self-registration functions to register and unregister COM server information, you should register this information for the component during installation (and the installer will unregister it during uninstallation).
  Self-registration is an unreliable method for registering and unregistering files. One advantage of having the installation register the information is that if the file is advertised, or not immediately installed, the registration is in place when the file is later requested from the installer. Therefore, InstallShield supports advanced settings specifically for registering COM servers.