• 译:用InnoSetup模块化安装依赖项


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

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

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

    先上图:

    dotnetfx_installer1

    dotnetfx_installer3

    说明:

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

    背景:

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

    详细资料:

    dotnetfx_structure

    setup.iss--包含了基本的products文件夹下你所需要的文件的安装。setup.iss需要用这种形式:#include "scriptsproductsdotnetfx11.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.文件夹下。如果不存在那么久自动下载。

    dotnetfx_installer2dotnetfx_installer4

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

    所需要的工具:

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

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

  • 相关阅读:
    Knol of Fabio Maulo
    调用非.net系统的Webservice的探索 ( 二 ) WSE
    在Sql Server 使用系统存储过程sp_rename修改表名或列名
    Who is locking the DB account?
    (python learn) 7 字典
    (python learn) 8 流程控制
    (python learn) 4 number&& string
    where is the data come from after we drop the table
    (healthy recorder) 治疗第6天
    (python learn) 6 列表
  • 原文地址:https://www.cnblogs.com/yplong/p/4261244.html
Copyright © 2020-2023  润新知