Skip to content
A widely used, general-purpose setup bootstrapper for MS Windows.
C++ C HTML Objective-C XSLT C# Other
Find file
Latest commit 0abe1f8 Nov 10, 2015 @dblock Merge pull request #102 from icnocop/master
calling va_end wherever va_start was called
Failed to load latest commit information.
Documentation running InstallerLibUnitTests as part of build Nov 6, 2015
InstallerConfig formatted all .cs, .h, .cpp, and .hpp files, which includes convertin… Nov 6, 2015
InstallerDocLib formatted all .cs, .h, .cpp, and .hpp files, which includes convertin… Nov 6, 2015
InstallerEditor formatted all .cs, .h, .cpp, and .hpp files, which includes convertin… Nov 6, 2015
InstallerLib formatted all .cs, .h, .cpp, and .hpp files, which includes convertin… Nov 6, 2015
InstallerLinker added Windows 10 as a supported operating system to all manifest files Jun 5, 2015
InstallerMsi added support for hiding command based components' application window… Jun 27, 2013
Samples running InstallerLibUnitTests as part of build Nov 6, 2015
ThirdParty calling va_end wherever va_start was called Nov 9, 2015
UnitTests throwing an exception if process handle is NULL Nov 8, 2015
Version #8256: Added /noRunOnReboot to the bootstrapper to suppress actually … Mar 13, 2011
dotNetInstaller calling va_end wherever va_start was called Nov 10, 2015
dotNetInstallerLib calling va_end wherever va_start was called Nov 10, 2015
dotNetInstallerToolsLib calling va_end wherever va_start was called Nov 10, 2015
htmlInstaller calling va_end wherever va_start was called Nov 10, 2015
.gitignore running InstallerLibUnitTests as part of build Nov 6, 2015
CHANGELOG.md #96 - Added the ability to hide a component if it's already installed Nov 3, 2015
LICENSE Preparing for 2.3 release. Jan 6, 2014
README.md running InstallerLibUnitTests as part of build Nov 6, 2015
Version.proj Updated to date-based versionning. May 24, 2012
appveyor.Debug.yml running InstallerLibUnitTests as part of build Nov 6, 2015
appveyor.Release.yml running InstallerLibUnitTests as part of build Nov 6, 2015
build.cmd calling va_end wherever va_start was called Nov 10, 2015
dni.debug.vsprops calling va_end wherever va_start was called Nov 10, 2015
dni.proj running InstallerLibUnitTests as part of build Nov 6, 2015
dni.sln #75: Added the ability to set the current working directory for comma… Jun 30, 2014
dni.vsprops calling va_end wherever va_start was called Nov 10, 2015
dni.vssscc Dni will incorrectly display installation_completed message if auto_c… Nov 16, 2010

README.md

dotNetInstaller Setup Bootstrapper

dotNetInstaller

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.

Essentials

Bootstrapper

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.

Something went wrong with that request. Please try again.