65.9K
CodeProject 正在变化。 阅读更多。
Home

Inno Setup 依赖项安装程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (189投票s)

2007年10月14日

CPOL

2分钟阅读

viewsIcon

1863330

downloadIcon

25004

在您的应用程序安装过程中下载并安装任何依赖项,例如 .NET、Visual C++ 或 SQL Server!

Inno Setup Dependency Installer

引言

Inno Setup 依赖安装程序可以在您的应用程序安装过程中下载并安装任何依赖项,例如 .NET、Visual C++ 或 SQL Server。 此外,添加您自己的依赖项也很容易。

安装和使用

  1. 下载并安装 Inno Setup 6.2+
  2. 从此处或 Github 存储库下载脚本。
  3. 打开提取的 ExampleSetup.iss 文件。
  4. 注释掉 InitializeSetup 函数中的依赖项函数调用,以禁用安装它们
    • Dependency_AddVC2013;   // installed in example setup
      //Dependency_AddVC2013; // commented out and not installed in example setup
  5. 根据需要修改其他部分,例如 [Setup] [Files] [Icons]
  6. 使用 Inno Setup 编译器构建安装程序。

集成

您也可以将 CodeDependencies.iss 文件包含到您的安装程序中,并调用所需的 Dependency_Add 函数(某些函数可能需要在 include 之前定义其可执行文件路径)

#define public Dependency_Path_NetCoreCheck "dependencies\"

#include "CodeDependencies.iss"

[Setup]
; ...

[Code]
function InitializeSetup: Boolean;
begin
  // add the dependencies you need
  Dependency_AddDotNet70;
  // ...

  Result := True;
end;

详细说明

您有两种分发依赖项安装程序的方法。 默认情况下,大多数依赖项将从官方网站下载。 另一种方法是将依赖项打包到一个可执行安装程序中,如下所示

  • 通过定义源包含依赖项安装文件

    Source: "dxwebsetup.exe"; Flags: dontcopy noencryption
  • 在相应的 Dependency_Add 函数之前调用 ExtractTemporaryFile()

    ExtractTemporaryFile('dxwebsetup.exe');

依赖项是根据系统架构安装的。 如果您想在 64 位系统上安装 32 位依赖项,您可以强制使用 32 位模式,如下所示

Dependency_ForceX86 := True;  // force 32-bit install of next dependencies
Dependency_AddVC2013;
Dependency_ForceX86 := False; // disable forced 32-bit install again

如果您只部署 32 位二进制文件和依赖项,您也可以不定义 [Setup] 中的 ArchitecturesInstallIn64BitMode

依赖项

  • .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.1
    • .NET Core 3.1 (运行时, ASP.NET, 桌面)
    • .NET 5.0 (运行时, ASP.NET, 桌面)
    • .NET 6.0 (运行时, ASP.NET, 桌面)
    • .NET 7.0 (运行时, ASP.NET, 桌面)
  • 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 3 Express
    • SQL Server 2017 Express
    • SQL Server 2019 Express
    • SQL Server 2022 Express
  • 访问
    • Access 数据库引擎 2010
    • Access 数据库引擎 2016
  • DirectX 最终用户运行时
  • WebView2 运行时

致谢

感谢社区分享的许多修复和改进。 要做出贡献,请创建拉取请求

© . All rights reserved.