A widely used, general-purpose setup bootstrapper for MS Windows.
C++ C HTML Objective-C XSLT C# Other
Failed to load latest commit information.
InstallerConfig formatted all .cs, .h, .cpp, and .hpp files, which includes convertin… Nov 6, 2015
Samples running InstallerLibUnitTests as part of build Nov 6, 2015
ThirdParty calling va_end wherever va_start was called Nov 10, 2015
dotNetInstallerLib Removed throwing an exception when the installation process is closed… ( Jun 25, 2016
README.md running InstallerLibUnitTests as part of build Nov 6, 2015
Version.proj Updated to date-based versionning. May 25, 2012
appveyor.Debug.yml running InstallerLibUnitTests as part of build Nov 6, 2015
build.cmd calling va_end wherever va_start was called Nov 10, 2015
dni.sln #75: Added the ability to set the current working directory for comma… Jun 30, 2014


dotNetInstaller Setup Bootstrapper


dotNetInstaller is a widely used, general-purpose setup bootstrapper for Microsoft Windows 95, 98, 2000, XP, 2003, Vista, 2008, 7, 8, 2012, 8.1, and 10.



dotNetInstaller enables the developer to define the application prerequisites and install the correct version(s) of these components in a predictable order based on the processor architecture, user operating system type and language, allow the user to download these components from the web, install these components directly from a single packaged setup, local media or both. dotNetInstaller is very feature rich and runs on all known Windows operating systems with a very tiny footprint.

A boostrapper doesn't replace tools like InstallShield, Wise, Visual Studio Setup and Deployment Project or Wix. The goal is to create an application to help users with installing the correct prerequisites. Most real world applications need to install several components to work properly, including Windows Service Packs, Internet Explorer, MDAC or .NET Framework. This kind of applications are most commonly known as bootstrappers. dotNetInstaller is such a bootstrapper.

Getting Started

  1. Download and install dotNetInstaller.
  2. Launch InstallerEditor.exe and create a configuration file.
  3. Add configurations, components and installed checks. Edit messages and various options.
  4. Deploy your installer. This may involve linking a single executable package or copying support files onto fixed media.

dotNetInstaller ships with a CHM help file with a detailed Getting Started section and a complete configuration reference. If you have trouble viewing the help file content, Right Click on it and choose Unblock in Properties.

Bootstrapper Scenarios

A bootstrapper enables additional scenarios not supported by the installer alone.

  • Distribute a single, compressed, executable packaged setup with all pre-requisites.
  • Distribute multiple installers that compose a large and complex application in a single package and enforce a well-defined installation workflow and dependencies.
  • Package frequently required components or components with a small footprint, and download less frequently used or larger ones only when necessary.
  • Provide additional parameters to existing package technologies, eg. automatically enabling logging in MSI installers.
  • Support workflow that includes a reboot in the middle of an installation between interdependent components.
  • Support web-based scenarios that include on-demand downloading the latest versions of the installed software and prerequisites.
  • Uninstall applications composed of several packages in a single sequence.

dotNetInstaller Components

This project consists of the following elements:

  • dotNetInstaller and htmlInstaller: main bootstrapper applications, written in C++. This is the raw setup which presents a GUI in front of the user that displays which components to install depending on which components are already installed on the operating system. The bootstrapper is statically linked with the CRT and has no prerequisites.
  • InstallerEditor: an application for editing configuration files and bootstrapper resources, written in C# for the .NET Framework 2.0. The editor is also capable of importing older versions of dotNetInstaller configuration files and converting them into the current/newer format.
  • InstallerLinker: a command-line bootstrapper linker that can be used in a build process, written in C# for the .NET Framework 2.0. Several samples and dependency templates that can be reused as-is and that demonstrate sometimes complex checks which verify whether, for example, MDAC or .NET framework are already installed.

Build Status

Debug Release
Build status Build status

Project History

This project began as a CodeProject article and was maintained on the DevAge website and SourceForge by David Icardi. It continued its journey through CodePlex and is now officially maintained on Github.

License and Copyright

Copyright (c) 2009-2012 Davide Icardi, Daniel Doubrovkine and Contributors.

This project is licensed under the MIT License.