Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A widely used, general-purpose setup bootstrapper for MS Windows.
C++ C XSLT C# Objective-C JavaScript Other
branch: master

Merge pull request #79 from icnocop/master

passing some strings by reference instead of by value for better perform...
latest commit 057af9567b
@dblock authored
Failed to load latest commit information.
Documentation Fixed issue #71: If reboot_required="" then the message box to prompt…
InstallerConfig added missing application compatibility sections to manifest files an…
InstallerDocLib Support for Windows 8.1 / Server 2012 R2
InstallerEditor Merge pull request #56 from baSSiLL/windows-8.1
InstallerLib #75: Added the ability to set the current working directory for comma…
InstallerLinker Support for Windows 8.1 / Server 2012 R2
InstallerMsi added support for hiding command based components' application window…
Samples Preparing for 2.3 release.
ThirdParty signed InstallerLib with a strong name
UnitTests passing some strings by reference instead of by value for better perf…
Version #8256: Added /noRunOnReboot to the bootstrapper to suppress actually …
dotNetInstaller Fixing typo "Plseas" -> "Please" in banner text.
dotNetInstallerLib passing some strings by reference instead of by value for better perf…
dotNetInstallerToolsLib #75: Added the ability to set the current working directory for comma…
htmlInstaller Support for Windows 8.1 / Server 2012 R2
.gitignore Support for Windows 8.1 / Server 2012 R2
CHANGELOG.md #75: Added the ability to set the current working directory for comma…
LICENSE Preparing for 2.3 release.
README.md Preparing for 2.3 release.
Version.proj Updated to date-based versionning.
build.cmd added support for hiding command based components' application window…
dni.debug.vsprops fixed CabLib Release configuration
dni.proj added support for hiding command based components' application window…
dni.sln #75: Added the ability to set the current working directory for comma…
dni.vsprops fixed CabLib Release configuration
dni.vssscc Dni will incorrectly display installation_completed message if auto_c…

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, Windows 7 and 8.

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.

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.