这是封装出来的针对.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. Unity各种功能实现之一:对话系统

    最近根据网上的教程学习了一下Unity中的对话系统,将其中一些关键点记录下来作为参考,以后可在此基础上添加更多功能. 1.UI部分的设置. 对话框由一个panel下面的text和image组成.can ...

  2. C语言基础题 22年5月

    (十六进制 %x  20.0f是%f  long 是%ld  unsigned int %#o  ) 编程题: 整数浮点数的上溢下溢 strcpy函数代码 int search(char *s, ch ...

  3. 动力节点的MySQL的34题目的第7题的我的参考答案

    以下是:薪水的平均等级最低的部门的名称 select t4.t4deptno,t4.t4grade,d1.dname from( ##求出各部门平均等级begin select avg(t3.t3gr ...

  4. arcengine动态显示所需字段值

    需求:实现和GIS桌面端中Identify的类似功能,鼠标滑动的时候可以显示鼠标所在位置的要素的指定字段的值.. 主要操作流程: ①先打开一个对话框,用于选择需要显示的图层和字段名 ②点击确定之后,在 ...

  5. mybatis_19

    id username birthday sex address 1 王五 2 10 张三 2014-07-10 1 北京市 16 张小明 1 河南郑州 22 陈小明 1 河南郑州 24 张三丰 1 ...

  6. MAC下使用Wireshark调试chrome浏览器的HTTP/2流量

    1.设置环境变量 mkdir ~/tls && touch ~/tls/sslkeylog.log #zsh echo "\nexport SSLKEYLOGFILE=~/t ...

  7. base64压缩

    1 /** * 压缩图片 * base64 : 图片base64字符串 * w : 图片宽高最大值 * callback : 回调函数 * quality : 压缩系数0-1之间, 默认0.92 * ...

  8. vue2+element表格拖拽

    1.定义好拖拽元素 ref标识,以及 row-key="id"  (row-key拖拽标识,拖拽后数据不会乱, id为tableDataNew数据对象id) 2.下载cnpm in ...

  9. Cisco Packet Tracer(思科模拟器)安装,注册用户

    下载 下载地址见湖南科技大学老师:http://mooc1.xueyinonline.com/nodedetailcontroller/visitnodedetail?courseId=2226402 ...

  10. Flink模式

    Per-job Cluster 该模式下,一个作业一个集群,作业之间相互隔离. 在Per-Job模式下,集群管理器框架用于为每个提交的Job启动一个 Flink 集群.Job完成后,集群将关闭,所有残 ...