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

转载于:https://www.cnblogs.com/ppinfo/archive/2013/01/23/2873721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值