zoukankan      html  css  js  c++  java
  • NSIS:判断并安装.NET Framework 4 的例子

    原文 NSIS:判断并安装.NET Framework 4 的例子

    现在.NET开发的软件已经大行其道,但有些操作系统并不符合软件的运行要求,所以,我们需要在安装程序中进行.NET Framework的判断,如果不符合要求就进行静默安装。

    首先,我们在Function区段进行当前.NET版本判断:

        Function GetNetFrameworkVersion
    02
    ;获取.Net Framework版本支持
    03
    Push $1
    04
    Push $0
    05
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv4Full""Install"
    06
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv4Full""Version"
    07
    StrCmp $0 1 KnowNetFrameworkVersion +1
    08
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.5""Install"
    09
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.5""Version"
    10
    StrCmp $0 1 KnowNetFrameworkVersion +1
    11
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.0Setup" "InstallSuccess"
    12
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv3.0Setup" "Version"
    13
    StrCmp $0 1 KnowNetFrameworkVersion +1
    14
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv2.0.50727" "Install"
    15
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv2.0.50727" "Version"
    16
    StrCmp $1 "" +1 +2
    17
    StrCpy $1 "2.0.50727.832"
    18
    StrCmp $0 1 KnowNetFrameworkVersion +1
    19
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv1.1.4322" "Install"
    20
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoftNET Framework SetupNDPv1.1.4322" "Version"
    21
    StrCmp $1 "" +1 +2
    22
    StrCpy $1 "1.1.4322.573"
    23
    StrCmp $0 1 KnowNetFrameworkVersion +1
    24
    ReadRegDWORD $0 HKLM "SOFTWAREMicrosoft.NETFrameworkpolicyv1.0""Install"
    25
    ReadRegDWORD $1 HKLM "SOFTWAREMicrosoft.NETFrameworkpolicyv1.0""Version"
    26
    StrCmp $1 "" +1 +2
    27
    StrCpy $1 "1.0.3705.0"
    28
    StrCmp $0 1 KnowNetFrameworkVersion +1
    29
    StrCpy $1 "not .NetFramework"
    30
    KnowNetFrameworkVersion:
    31
    Pop $0
    32
    Exch $1
    33
    FunctionEnd

    然后,在Section区段进行.NET静默安装:

    01
    Section -.NET
    02
    Call GetNetFrameworkVersion
    03
    Pop $R1
    04
     ${If} $R1 < '4.0.30319'
    05
     SetDetailsPrint textonly
    06
     DetailPrint "正在安装 .NET Framework 4"
    07
     SetDetailsPrint listonly
    08
     
    09
     SetOutPath "$TEMP"
    10
     SetOverwrite on
    11
     File "dotNetFx40_Full_x86_x64.exe"
    12
     ExecWait '$TEMPdotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper' $R1
    13
     Delete "$TEMPdotNetFx40_Full_x86_x64.exe"
    14
     ${EndIf}
    15
    SectionEnd

    当然,在Section区段可以做到自动在线下载而不把.NET打到安装包中,这样可以减小安装包体积,效果可参考紫辰记账本安装程序

  • 相关阅读:
    file.delete()删除文件失败
    Axure RP Extension for Chrome插件离线安装
    C#---EF映射MySQL
    C#--二维数组
    MySQL--增删改查分页存储过程以及事务
    C# --MVC实现简单上传下载
    配置SQLServer,允许远程连接
    C#——工厂模式
    C#--条形码和二维码的简单实现
    C#—接口和抽象类的区别?
  • 原文地址:https://www.cnblogs.com/xiaowie/p/8667939.html
Copyright © 2011-2022 走看看