zoukankan      html  css  js  c++  java
  • HM NIS Edit制作安装包时检测是否有.net4.6环境,没有的时候自动安装。

    把.net4.6安装包打包进安装程序。

    关键脚本如下:

    头部引用字符串对比库

    !include "WordFunc.nsh"

    新建一个Section,.Net4.6的文件版本号是4.6.00081,其它的版本需要在其对应的完整安装包右键属性,文件详情中查看。

    Section -.NET Framework
        SetDetailsPrint both
        DetailPrint "运行环境检测中..."
        Call GetNetFrameworkVersion
        Pop $R1
        ${VersionCompare} $R1 '4.6.00081' $1
        ${If} $1 == '2'
            SetDetailsPrint textonly
            DetailPrint "正在安装所需环境..."
            ExecWait '"$INSTDIR4.6.exe"' $R1
        ${EndIf}
    SectionEnd
    

    新建一个Function用来执行检测已安装的.Net版本(来自百度)

    Function GetNetFrameworkVersion
        ;获取.Net Framework版本支持
        Push $1
        Push $0
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv4Full" "Install"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv4Full" "Version"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.5" "Install"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.5" "Version"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.0Setup" "InstallSuccess"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.0Setup" "Version"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv2.0.50727" "Install"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv2.0.50727" "Version"
        StrCmp $1 "" +1 +2
        StrCpy $1 "2.0.50727.832"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv1.1.4322" "Install"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv1.1.4322" "Version"
        StrCmp $1 "" +1 +2
        StrCpy $1 "1.1.4322.573"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        ReadRegDWORD $0 HKLM "SOFTWAREMicrosoft.NETFrameworkpolicyv1.0" "Install"
        ReadRegDWORD $1 HKLM "SOFTWAREMicrosoft.NETFrameworkpolicyv1.0" "Version"
        StrCmp $1 "" +1 +2
        StrCpy $1 "1.0.3705.0"
        StrCmp $0 1 KnowNetFrameworkVersion +1
        StrCpy $1 "not .NetFramework"
        KnowNetFrameworkVersion:
        Pop $0
        Exch $1
    FunctionEnd
    

    然后打包生成安装包,这样就可以在没有.Net4.6的环境的机器上安装的时候自动安装.net4.6了。

  • 相关阅读:
    动态采样
    Java Mail无法解析带分号的收件人列表的问题
    git 使用详解(5) get log 查看提交历史
    git 使用详解(6) 撤消操作
    修改 android的 开机 音乐
    修改 android的 开机 音乐
    关于ubuntu的aptget 包
    ubuntu 10.04 常用 设置
    Android4.0.3 修改 启动 动画
    git 使用详解(5) get log 查看提交历史
  • 原文地址:https://www.cnblogs.com/wdw984/p/11712950.html
Copyright © 2011-2022 走看看