Software

Using a Software Install Maker to Build a Bullet-Proof Windows Installer

  • By
  • December 4, 2009

So, you’ve created a great new software application for the Microsoft Windows operating system. All you need to do now is package it up as a setup.exe file and you can finally head out on vacation. But hold on there partner! Even before you choose your install maker tool, your first step to creating an installer for your Windows application is to plan it out. In fact, planning your installation is one of the most important steps in designing a professional software installer.

1. What Files Do You Need to Distribute?

The first step in preparing your installation is to determine exactly what files your software application requires for proper operation.

Program Files
Program files are the “main files” of your application. These files are essential to your application and are only useful in the context of your application. They can be executables, help files, documents, templates, or any other data files that your application requires. Program files usually make up the bulk of your software.

Configuration Files
Configuration files are used to store startup options, user settings, and other configuration options for your software. Information can be read from and written to these files during the normal operation of your application. These files are often referred to as “config” files, and come in many different formats, from traditional “INI” files (which adopt the same internal structure as Windows .ini files) to modern XML files.

Operating System Components
These files are usually included with the Windows operating system, but you may want to distribute the newest versions of certain files, or you may have developed custom system files of your own. These files are generally DLLs, OCX components, or hardware drivers like SYS files and VxDs.

Shared Application Resources
These are files that may be shared by more than one application, such as ActiveX controls, OCX components, and DLL files. Some of the files that you need to distribute will be obvious, such as the main executable and help files. Others may be less apparent, such as DLLs and ActiveX controls installed in the Windows directories of your development system.

Dependency Files
Dependency files are external support files that an executable requires for proper operation. In other words, they are external files that a program file “depends on” in order to function properly. Dependency files may include INI files, DLLs, ActiveX controls, OCX components, or any other support file type. Although it’s generally preferable to install dependency files in the same folder as the program that needs them, they are often installed in other locations, such as the Windows system directories.

Tip: Professional Windows installer makers like Indigo Rose’s Setup Factory – http://www.indigorose.com/products/setup-factory/ – have a built-in dependency scanner that you can use to identify dependency files and add them to your project. You can access this feature by choosing Tools – Scan File Dependencies.

2. Where Do Your Files Need To Be Installed?
Once you have your software organized, you need to determine exactly where each file needs to go on the user’s system. While an install creator like Setup Factory does a lot of this work for you by maintaining directory structures when you add files to your project, there are still some files that may need to be directed to different locations on the user’s system.

Here are some guidelines to help you determine where you should install your files on the user’s system. Once again, there are four basic types of files that you may need to distribute: program files, configuration files, operating system components, and shared application resources.

Installing Program Files
Program files should be installed in a folder that the user chooses during the installation process. This folder is referred to as the application folder. The path to the application folder is usually represented by the variable %AppFolder%.
It’s okay to install program files in sub-folders within the application folder – in fact, organizing your program files into sub-folders is a very good idea. Your files don’t all have to be in the application folder itself; the folder that the user chooses can be used as a common application folder, with sub-folders for all of your program files.

Installing Configuration Files
In the past, initialization or “INI” files were often installed in the Windows folder. This is definitely not necessary or even a good idea anymore. Unless your application shares a configuration file with other programs, it’s best to install the file in the application folder along with your program files or more suitably in a User Data folder. In fact, the current best practice it to avoid installing any files in the Windows folder, or in any other folders where critical operating system files are stored.

Installing Operating System Components
Operating system components, such as DLL or OCX files, are traditionally installed in the WINDOWSSYSTEM folder (%SystemFolder%). If your application doesn’t need to share these files with other applications, it’s best to install them in your application folder (%AppFolder%) instead.

Installing Shared Application Resources
Shared application resources, such as some ActiveX controls or DLL files, are generally installed in the WINDOWSSYSTEM folder (%SystemFolder%). Keep in mind that some DLL and OCX files have dependency files themselves, and these dependency files need to be distributed and possibly also registered before the DLL or OCX files can be used. You should consult the documentation for your components to determine what dependencies they have.

3. What System Changes Need To Be Made?
The next step is to think about what changes, if any, need to be made to the user’s system. This can include changes to system files, changes to the Registry, and even such things as installing and registering fonts. All of these changes can be handled easily using a professional install creator like Setup Factory.

4. What Information Do You Need from the User?
The final step in planning your software installation is to consider what information you will need from the user, and what information you will need from the user’s system. For example, in order to personalize your software or register it to a specific user, you may want to ask the user to provide their name on a User Information screen. Or, you may want to ask the user for a serial number on a Verify Serial Number screen.

Final Steps
Now that you’ve planned everything out, you can actually build your software installer. Simply start up your software installer maker tool and follow the blue-print you created. Assuming you have an install creator that is easy to use, let’s you visually organize your files and gives you full control over where files get installed and what system changes are made, you shouldn’t run into any problems!

No Comments Found

Leave a Reply