cancel
Showing results for 
Search instead for 
Did you mean: 

Installing Fonts Without Registering Them in the Registry

Installing Fonts Without Registering Them in the Registry

Summary

This article provides information on installing fonts without registering them with Windows.

Synopsis

This article provides various methods of installing fonts without registering them when using a Basic MSI or InstallScript MSI project. By default, InstallShield automatically populates the Font table entries for any fonts configured to be installed on the target system.

Discussion

The easiest way to disable the automatic registration of a font during install is to remove the entry from the Font table. You can do this by going to the Direct Editor on the Installation Designer tab in InstallShield and selecting the Font table. Then highlight the rows containing the fonts that you do not want to register, right click and select 'Drop Row(s)'. The fonts should no longer be registered during the installation.

If you are including dynamically linked files in your project that include some font files that you do not want to register then the Font table will only be populated at build time and so you will not be able to manually remove these rows from your project. If you are building an MSI file it should be possible to open the MSI by right clicking on it and selecting 'Edit with InstallShield'. This will open direct edit mode where you can make changes to the MSI file itself. You can remove the rows from the Font table as described above.

If you do not want to edit your MSI post build or are building an MSI which is compressed into a setup.exe. You can disable the MSI actions which perform the registration of fonts. This will completely disable the registration of fonts in your MSI and you will not be able to selectively register some fonts. To do this you can go to the Custom Actions and Sequences view on the Installation Designer tab and in the Installation Execute sequence find the RegisterFonts and UnregisterFonts actions. Select them and then add a condition that will fail. For example you can enter a property name that is not set in your project. Since this property does not contain a value then the condition check will fail.

Another approach to placing font files on the target system without registering them is with a script custom action. The following steps outline a method to install a font file to INSTALLDIR without registering them::
  1. Place the font file in the Language Independent section of the Support Files view in InstallShield.
  2. In the InstallScript view, create a new script and place the following script in a function, replacing <FONT.TTF> with the font file name:
    1. n = 256;
      MsiGetProperty(hMSI,"SUPPORTDIR",SupFiles, n);
      XCopyFile(SupFiles ^ "<FONT.TTF>",INSTALLDIR,COMP_NORMAL);
  3. In the Custom Action and Sequences view, add a new InstallScript custom action.
  4. Specify the function from step 2 and schedule the custom action to run in the Install Exec sequence After InstallFiles.
The font file will be copied to INSTALLDIR during the installation process and will not be registered on the target system.

Additional Information

For additional information on configuring an InstallShield project to install font files, please refer to the following articles
Installing and Registering Fonts
Installing Fonts (InstallShield Help)