这是封装出来的针对.NET环境安装的精简流程

根据流程新建一个配置文件

教程都是很简单的,可以参考《InnoSetup 客户端程序打包教程

添加.NET安装基本的函数及辅助方法

在[Setup]模块下引用几个辅助文件

 1 //import dependency for .net
2 //isxdl operation
3 #include "dependency\isxdl.iss"
4 //;TYPES AND VARIABLES
5 #include "dependency\products.pas"
6 //about .net versions
7 #include "dependency\dotnetfxversion.iss"
isxdl.iss -- 引用了isxdl.dll并添加文件下载、安装函数
products.pas -- 版本的安装过程
dotnetfxversion.iss -- .net版本信息等相关函数

添加.NET版本引用及启动执行

以.net4.5.iss为例,添加了版本的信息及下载地址等(下载过程调用上个步骤中product.pas函数)

 1 [CustomMessages]
2 dotnetfx45_title=.NET Framework 4.5.2
3 dotnetfx45_size=68 MB
4
5 [Code]
6 const
7 dotnetfx45_url = 'http://download.microsoft.com/download/B/4/1/B4119C11-0423-477B-80EE-7A474314B347/NDP452-KB2901954-Web.exe';
8
9 procedure dotnetfx45(minVersion: Integer);
10 begin
11 if (dotnetfxspversion(NetFx4x, '') < minVersion) then
12 AddProduct('dotnetfx45.exe',
13 '/lcid ' + CustomMessage('lcid') + ' /passive /norestart',
14 CustomMessage('dotnetfx45_title'),
15 CustomMessage('dotnetfx45_size'),
16 dotnetfx45_url,
17 false, false, false);
18 end;

在[Setup]中添加要依赖的.NET版本:

1 [Setup]
2 //add .net4.5
3 #include "dependency\.net versions installation\dotnetfx45.iss"
4 #include "dependency\.net versions installation\dotnetfx46.iss"

添加定制语言项,如果安装包需要支持多语种,可以额外引用其它语言项进行选择。

 1 [CustomMessages]
2 DependenciesDir=MyProgramDependencies
3 WindowsServicePack=Windows %1 Service Pack %2
4 //固定英文安装语言
5 lcid=1033
6 depdownload_memo_title=Download dependencies
7 depinstall_memo_title=Install dependencies
8 depinstall_title=Installing dependencies
9 depinstall_description=Please wait while Setup installs dependencies on your computer.
10 depinstall_status=Installing %1...
11 depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
12 depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
13 isxdl_langfile=""

安装.NET版本:

1 [Code]
2 function InitializeSetup(): Boolean;
3 begin
4 dotnetfx45(50); // install if version < 4.5.0
5 dotnetfx46(60); // install if version < 4.6.0
6 Result := true;
7 end;

需要什么版本,直接加一行代码就行~

Demo案例

点击安装后,会自动检测.NET环境,并执行缺失环境的安装。

安装成功后,就可以正常启动咯~

demo案例详见 https://github.com/Kybs0/InnoSetupAddNETVersionsDemo

参考文章:

InnoSetup打包 添加.NET环境安装的更多相关文章

  1. Sencha Toucha 2 —1.环境安装配置、在线打包、离线打包

    环境安装配置        1. 下载 1.1     Sencha Touch 下载 http://cdn.sencha.com/touch/sencha-touch-2.2.1-gpl.zip 1 ...

  2. vs.net打包(自动检测环境并安装.net framwork)

    vs.net打包程序或者制作安装程序时自动检测环境并安装.netframwork的设置方法之前我看过文档也做过,但是过一段时间又忘了,现在终于又找到方法了,还是把这个方法写下来吧,方便自己也方便大家将 ...

  3. QT环境安装VS2013(系统环境里设置QTDIR,并添加VS2013的BIN目录)

    QT环境安装VS2013 文件名 1.qt5.5.1 qt-opensource-windows-x86-msvc2013-5.5.1.exe 2.qt vs插件 3.qt-vs-addin-1.2. ...

  4. Java程序导出成.jar文件、生成.exe可执行文件及打包成可执行安装程序(可在无Java环境的计算机上运行)--以个人所得税计算器为例

    Java程序导出成.jar文件.生成.exe可执行文件及打包成可执行安装程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 需要准备的软件: jdk, ...

  5. python新手之一环境安装

    今天开始学习python,首先环境安装 1.在https://www.python.org/downloads/下载python2.X或者3.X(ps:这里建议下载32位的python ,因为64位p ...

  6. Java基础-配置开发环境-安装JDK

    Java基础-配置开发环境-安装JDK 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机基础知识 1>.计算机的组成 计算机有硬件与软件组成. 2>.硬件: 硬 ...

  7. golang环境安装和配置

    go中环境安装 前言 最近在工作中需要新配置go环境,每次都要去网上查找教程,浪费时间,那么就自己总结下. 下载安装 linuxGolang官网下载地址:https://golang.org/dl/1 ...

  8. 无网环境安装docker之--rpm

    总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm:  --forc ...

  9. 用Docker打包Python运行环境

    虽然Docker作为部署环境打包镜像的工具,和我的科研并没有直接的关系.但我觉得在项目中运用Docker来打包环境依赖也可以大大提高工作效率,于是准备专门学习一下Docker. 1. Docker基础 ...

随机推荐

  1. Js:当前日期格式化与比较大小

    //日期格式转换 getCurrentTime() { var date = new Date();//当前时间 var year = date.getFullYear() //返回指定日期的年份 v ...

  2. 前端访问Tornado跨域问题

  3. 总项目的pom文件

    注意修改子模块名称!!!!!!!!!!!!!!!!!!<?xml version="1.0" encoding="UTF-8"?> <proj ...

  4. 如何加快打开网页的速度------通过调节“QoS数据包计划程序”的“限制可保留宽带”实现&如何解决win10可能找不到gpedit.msc的问题

    参考:http://www.windowszj.com/news/win10/42119.html http://www.docin.com/p-1510367352.html(QoS数据包计划程序有 ...

  5. uni-popup 遮不住头部标题的解决办法

    要做一个小程序,会有弹窗,但是uni-app的API组件uni.showModal不足以满足我的需求,于是我用HBuilderX引入了uni-popup. 代码是这样的 <button @cli ...

  6. Spring源码分析之getBean

    一.前言 spring作为JAVAEE最核心的框架,是每一个java开发者所必须掌握的,非常重要,本篇从一个简单例子入手,由浅入深的分析spring创建bean的全过程,目标在于彻底搞懂spring原 ...

  7. JavaWeb笔记第一弹

    一.MYSQL的安装 1.MYSQL的安装 可以去官网找到与自身计算机向对应的版本进行下载 网址如下: MySQL :: Download MySQL Community Server 2.MYSQL ...

  8. 深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析

    深入理解 Python 虚拟机:复数(complex)的实现原理及源码剖析 在本篇文章当中主要给大家介绍在 cpython 虚拟机当中是如何实现 复数 complex 这个数据类型的,这个数据类型在 ...

  9. 2023 年最新最全的 React 面试题

    React 作为前端使用最多的框架,必然是面试的重点.我们接下来主要从 React 的使用方式.源码层面和周边生态(如 redux, react-router 等)等几个方便来进行总结. 1. 使用方 ...

  10. ASP.NET Core - 选型系统之选型配置

    1. 选项 前面讲完了.NET Core 下的配置系统,我们可以通过 IConfiguration 服务从各种来源的配置中读取到配置信息,但是每次要用的时候都通过 Iconfiguration 读取配 ...