• Inno setup 制作安装包时检查 .Net Framework 版本的脚本


      1 [Code] 
      2 
      3 function IsDotNetDetected(version: string; service: cardinal): boolean; 
      4 
      5 // Indicates whether the specified version and service pack of the .NET Framework is installed. 
      6 
      7 // 
      8 
      9 // version -- Specify one of these strings for the required .NET Framework version: 
     10 
     11 // 'v1.1.4322' .NET Framework 1.1 
     12 
     13 // 'v2.0.50727' .NET Framework 2.0 
     14 
     15 // 'v3.0' .NET Framework 3.0 
     16 
     17 // 'v3.5' .NET Framework 3.5 
     18 
     19 // 'v4\Client' .NET Framework 4.0 Client Profile 
     20 
     21 // 'v4\Full' .NET Framework 4.0 Full Installation 
     22 
     23 // 'v4.5' .NET Framework 4.5 
     24 
     25 // 
     26 
     27 // service -- Specify any non-negative integer for the required service pack level: 
     28 
     29 // 0 No service packs required 
     30 
     31 // 1, 2, etc. Service pack 1, 2, etc. required 
     32 
     33 var 
     34 
     35 key: string; 
     36 
     37 install, release, serviceCount: cardinal; 
     38 
     39 check45, success: boolean; 
     40 
     41 begin 
     42 
     43 // .NET 4.5 installs as update to .NET 4.0 Full 
     44 
     45 if version = 'v4.5' then begin 
     46 
     47 version := 'v4\Full'; 
     48 
     49 check45 := true; 
     50 
     51 end else 
     52 
     53 check45 := false; 
     54 
     55  
     56 
     57 // installation key group for all .NET versions 
     58 
     59 key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version; 
     60 
     61  
     62 
     63 // .NET 3.0 uses value InstallSuccess in subkey Setup 
     64 
     65 if Pos('v3.0', version) = 1 then begin 
     66 
     67 success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install); 
     68 
     69 end else begin 
     70 
     71 success := RegQueryDWordValue(HKLM, key, 'Install', install); 
     72 
     73 end; 
     74 
     75  
     76 
     77 // .NET 4.0/4.5 uses value Servicing instead of SP 
     78 
     79 if Pos('v4', version) = 1 then begin 
     80 
     81 success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount); 
     82 
     83 end else begin 
     84 
     85 success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount); 
     86 
     87 end; 
     88 
     89  
     90 
     91 // .NET 4.5 uses additional value Release 
     92 
     93 if check45 then begin 
     94 
     95 success := success and RegQueryDWordValue(HKLM, key, 'Release', release); 
     96 
     97 success := success and (release >= 378389); 
     98 
     99 end; 
    100 
    101  
    102 
    103 result := success and (install = 1) and (serviceCount >= service); 
    104 
    105 end; 
    106 
    107  
    108 
    109  
    110 
    111 function InitializeSetup(): Boolean; 
    112 
    113 begin 
    114 
    115 if not IsDotNetDetected('v4\Client', 0) then begin 
    116 
    117 MsgBox('MyApp requires Microsoft .NET Framework 4.0 Client Profile.'#13#13 
    118 
    119 'Please use Windows Update to install this version,'#13 
    120 
    121 'and then re-run the MyApp setup program.', mbInformation, MB_OK); 
    122 
    123 result := false; 
    124 
    125 end else 
    126 
    127 result := true; 
    128 
    129 end;


     

    转载网址:http://www.kynosarges.org/DotNetVersion.html

  • 相关阅读:
    initwithcoder和 initwithframe 区别?
    iOS图形处理和性能
    iOS图形处理和性能
    Objc的底层并发API
    Objc的底层并发API
    位运算
    位运算
    网页开发的6种在线调试环境
    网页开发的6种在线调试环境
    Python基本语法_函数属性 & 参数类型 & 偏函数的应用
  • 原文地址:https://www.cnblogs.com/ppinfo/p/2873721.html
Copyright © 2020-2023  润新知