Inno Setup Dependency Installer can download and install any dependency such as .NET, Visual C++ or SQL Server during your application's installation. In addition, it is easy to add your own dependencies as well.
- Download and install Inno Setup 6.2+.
- Download this repository or clone it.
- Open the extracted CodeDependencies.iss file.
- Comment out dependency defines to disable installing them in the example setup and leave only dependencies that need to be installed:
#define UseVC2013 <-- installed in example setup ;#define UseVC2013 <-- commented out and not installed in example setup
- Modify other sections like [Setup] [Files] [Icons] as necessary.
- Build setup using Inno Setup compiler.
You can include CodeDependencies.iss file into your setup by disabling compilation of the example setup before and calling the desired Dependency_Add functions:
#define public Dependency_NoExampleSetup
#include "CodeDependencies.iss"
[Setup]
; ...
[Code]
function InitializeSetup: Boolean;
begin
// add the dependencies you need
Dependency_AddVC2013;
// ...
Result := True;
end;
You have two ways to distribute the dependency installers. By default, the dependency will be downloaded from the official website once it is defined as required in the CodeDependencies.iss file. Another way is to pack the dependency into a single executable setup like so:
-
Include the dependency setup file by defining the source:
Source: "dxwebsetup.exe"; Flags: dontcopy noencryption
-
Call ExtractTemporaryFile() before the corresponding Dependency_Add function
ExtractTemporaryFile('dxwebsetup.exe');
The dependencies are installed based on the system architecture. If you want to install 32-bit dependencies on a 64-bit system you can force 32-bit mode like so:
Dependency_ForceX86 := True; // force 32-bit install of next dependencies
Dependency_AddVC2013;
Dependency_ForceX86 := False; // disable forced 32-bit install again
If you only deploy 32-bit binaries and dependencies you can also instead just not define ArchitecturesInstallIn64BitMode in [Setup].
-
.NET
- .NET Framework 3.5 Service Pack 1
- .NET Framework 4.0
- .NET Framework 4.5.2
- .NET Framework 4.6.2
- .NET Framework 4.7.2
- .NET Framework 4.8
- .NET Core Runtime 3.1
- ASP.NET Core Runtime 3.1
- .NET Desktop Runtime 3.1
- .NET Runtime 5.0
- ASP.NET Core Runtime 5.0
- .NET Desktop Runtime 5.0
- .NET Runtime 6.0
- ASP.NET Core Runtime 6.0
- .NET Desktop Runtime 6.0
-
C++
- Visual C++ 2005 Service Pack 1 Redistributable
- Visual C++ 2008 Service Pack 1 Redistributable
- Visual C++ 2010 Service Pack 1 Redistributable
- Visual C++ 2012 Update 4 Redistributable
- Visual C++ 2013 Update 5 Redistributable
- Visual C++ 2015-2022 Redistributable
-
SQL
- SQL Server 2008 R2 Service Pack 2 Express
- SQL Server 2012 Service Pack 4 Express
- SQL Server 2014 Service Pack 3 Express
- SQL Server 2016 Service Pack 2 Express
- SQL Server 2017 Express
- SQL Server 2019 Express
-
DirectX End-User Runtime
Thanks to the community for sharing many fixes and improvements. To contribute please create a pull request.