译文出处:http://www.codeproject.com/Articles/20868/NET-Framework-Installer-for-InnoSetup

源文件下载:http://files.cnblogs.com/files/yplong/innodependencyinstaller.zip

一个模块脚本来下载和安装.NET Framework的所有版本或其他的软件。

先上图:

说明:

这篇文章介绍了一个innosetup脚本来自动下载(如果本地不存在)和安装各种依赖项 比如.NET Framework 1.1/2.0/3.5/4.0/4.5和其他的32位和64位程序。

背景:

曾几何时,我需要安装.Net应用程序。我知道我能够使用智能一键安装包。但是我觉得安装界面很不友好,而且不是那么顺手。我得到一个innosetup脚本来完成我所想要做的。但是不幸的是,它只支持.Net1.1.因此,我花费了一点时间来大大的修改它以实现我的目的。

详细资料:

setup.iss--包含了基本的products文件夹下你所需要的文件的安装。setup.iss需要用这种形式:#include "scripts\products\dotnetfx11.iss   把他们(products文件夹下的iss文件)包含在里面。然后你只需要调用 【code】 代码段的主函数,比如dotnetfx11();

bin - 用来存放setup.iss编译生成的exe文件

src - 包含了应用安装包安装所需要的文件

scripts

  • products.iss -包含了共享的脚本. 你只需要改变[CustomMessages] 部分和[Files] 部分(包含 isxdl语言文件)
  • isxdl - 包含了安装要下载的dll(如果需要下载) 和语言文件 (e.g. german.ini). 你可以把你自己需要的语言放在这里.
  • products -包含了安装所需要的文件(e.g. .NET Framework 2.0)
    • dotnetfx11.iss - .NET Framework 1.1
    • dotnetfx11lp.iss - .NET Framework 1.1 Language Pack
    • dotnetfx11sp1.iss - .NET Framework 1.1 + Service Pack 1
    • dotnetfx20.iss - .NET Framework 2.0
    • dotnetfx20lp.iss - .NET Framework 2.0 Language Pack
    • dotnetfx20sp1.iss - .NET Framework 2.0 + Service Pack 1
    • dotnetfx20sp1lp.iss - .NET Framework 2.0 Service Pack 1 Language Pack
    • dotnetfx20sp2.iss - .NET Framework 2.0 + Service Pack 2
    • dotnetfx20sp2lp.iss - .NET Framework 2.0 Service Pack 2 Language Pack
    • dotnetfx35.iss - .NET Framework 3.5
    • dotnetfx35lp.iss - .NET Framework 3.5 Language Pack
    • dotnetfx35sp1.iss - .NET Framework 3.5 + Service Pack 1
    • dotnetfx35sp1lp.iss - .NET Framework 3.5 Service Pack 1 Language Pack
    • dotnetfx40client.iss - .NET Framework 4.0 Client Profile
    • dotnetfx40full.iss - .NET Framework 4.0 Full
    • dotnetfx45.iss - .NET Framework 4.5.2
    • ie6.iss - Internet Explorer 6
    • iis.iss - Internet Information Services (just a check if it is installed)
    • jet4sp8.iss - Jet 4 + Service Pack 8
    • kb835732.iss - Security Update (KB835732) which is required by .NET Framework 2.0 Service Pack 1 on Windows 2000 Service Pack 4
    • mdac28.iss - Microsoft Data Access Components (MDAC) 2.8
    • msi20.iss - Windows Installer 2.0
    • msi31.iss - Windows Installer 3.1
    • msi45.iss - Windows Installer 4.5
    • sql2005express.iss - SQL Server 2005 Express + Service Pack 3
    • sql2008express.iss - SQL Server 2008 Express R2
    • sqlcompact35sp2.iss - SQL Server Compact 3.5 + Service Pack 2
    • vcredist2005.iss - Visual C++ 2005 Redistributable
    • vcredist2008.iss - Visual C++ 2008 Redistributable
    • vcredist2010.iss - Visual C++ 2010 Redistributable
    • vcredist2012.iss - Visual C++ 2012 Redistributable
    • vcredist2013.iss - Visual C++ 2013 Redistributable
    • wic.iss - Windows Imaging Component (windows图片控件)
    • winversion.iss - 帮助确定安装的版本信息
    • fileversion.iss - 帮助确定安装的版本文件
    • stringversion.iss - 帮助正确分析版本字符
    • dotnetfxversion.iss - 帮助确定.net安装和服务包
    • msiproduct.iss - 帮助坚持msi软件

很可能你要调整setup.iss来检查不同的windows版本所需要的依赖项。

如果一个依赖项没有安装,安装过程会检查相关依赖项的安装文件是否存在于.\MyProgramDependencies.文件夹下。如果不存在那么久自动下载。

依赖项的安装一般自动运行的,静默安装。因此不需要用户插手(不包括IE6)。安装脚本使用了[CostumMessages]段因此你可以轻松添加多语言支持。

所需要的工具:

  • Inno Setup - (版本5.5.5)
  • ISTool -  Inno Setup的扩展组件。但是我只需要 isxdl.dll downloader (版本5.3.0)

~~~~就到这里,感谢的话就不翻译了

译:用InnoSetup模块化安装依赖项的更多相关文章

  1. DPDK安装依赖项合集 环境合集

    前言 在dpdk编译过程中,由于一些依赖项的限制,dpdk在纯净的系统上安装需要花一些功夫.本文总结了编译dpdk所需的依赖项,并归纳了安装合集,在安装过程上可以省下大量的搜索时间. 使用系统 ubu ...

  2. 安装依赖库的方法-linux

    前言 使用linux系统的过程中,项目可能需要用到各种依赖库或者工具包,本文对库或者包的安装方法进行概述. 具体方法 如何安装各种依赖库或者工具包:1)直接使用apt-get install进行安装, ...

  3. 模块化InnoSetup依赖项安装

    原文在这里:http://www.codeproject.com/Articles/20868/NET-Framework-Installer-for-InnoSetup 源文件地址:http://w ...

  4. rpm方式安装gcc缺少依赖项的解决方法

    使用rpm方式安装gcc时,有时会报缺少依赖项: libmpfr.so.1 is needed by cpp-4.4.4-13.el6.i686 libppl.so.7 is needed by cl ...

  5. 安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项

    安装SQL2008时遇到"未能加载文件或"file:///d:microsoft..sql.chainer.packagedata.dll"或它的某个依赖项,如下图所示 ...

  6. Ubuntu安装软件时提示依赖项配置错误

    在终端中使用dpkg安装软件时有时会出现依赖项配置错误的情况, 解决方法是使用指令 sudo apt-get install -f 安装Ubuntu 16.04新系统不再配有的缺失依赖项,之后再次输入 ...

  7. Chrome在Ubuntu中缺少依赖项,无法安装

    在Ubuntu 13.04中,安装chrome会报下面这个错误(不知是不是因为我没有更新的原因:(  ): 也就是缺少名为libxss1的包. 解决办法,当然可以很简单的去找libxss1这个包下载, ...

  8. linux安装dpkg安装缺少依赖项的解决

    问题: dpkg: error processing package rxvt:i386 (--install): dependency problems - leaving unconfigured ...

  9. 迁移到MSYS2 与 Qt 工具链注意的几个事情(g++在链接时,符号依赖项查找遵循从左至右的顺序,但qmake会自动合并造成错误。使用脚本给Mingw32-make创造出一个局部的VC编译环境)

    Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...

随机推荐

  1. Hadoop Capacity Scheduler源码实现剖析

    作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2013/09/13/had ...

  2. Sharing count on Facebook, Twitter, and LinkedIn

    最近一段时间一直在研究有关Social Network的东西,这里有几个在当前国外主流社交网站上用来显示分享数量的API,记录一下,今后可能会用得着. Facebook Facebook将FQL(Fa ...

  3. 简单理解ECMAScript2015中的Promise

    ECMAScript6中新增了Promise对象, 所谓Promise对象,即代表着一个还未完成,但将来某时会完成的操作(通常是异步操作).使用Promise对象,我们就可以避免陷入函数层层嵌套的‘回 ...

  4. GEF - 制作一个简单图形化编辑框架笔记1

    在首先来看看GEF是什么,GEF的全称是Graphical Editing Framework,图形化框架,可以利用此框架做图形化编.他的基本原理是采用MVC开发模式. 以下是一些例子 GEF里面包含 ...

  5. windows下clang的安装与使用

    我本意是想在windows下学习下C++11,而结果是我的Visual Studio 2012不完全支持,而我又懒得去安装2013/2015,太大了.公司运维也不允许我去下载- -,然后就想能不能在w ...

  6. Windows系统补丁KB2962872导致InstallShield无法启动(解决方案已更新)

    20140717最新更新: Flexera Software发布了临时补丁包,该补丁包暂时禁止了InstallShield Trialware功能(中国区用户很少有用此功能)两种安装方法: 方法1. ...

  7. GRIDVIEW多行多列合并单元格(合并列)

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章:  GridView多行多列合并单元格(完整代码和例子) ...

  8. 【LeetCode】Power of Two

    问题描写叙述 Given an integer, write a function to determine if it is a power of two. 意:推断一个数是否是2的n次幂 算法思想 ...

  9. Gradle 构建 android 应用常见问题解决指南

    前言 android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早 ...

  10. IOS图像拉伸解决方案

    UIButton实现背景拉伸,即图片两端不拉伸中间拉伸的办法有如下两种: 第一种方法很简单而且使用性更广.做法就是直接拉伸想要setBackgroundImage的image,代码如下: UIImag ...