Setup_Fuel.iss 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. ; #######################################################################################
  2. ; # This Inno Setup script was generated by Visual & Installer - Visual Studio Addin #
  3. ; # Visual & Installer (c) 2013 - 2014 unSigned Softworks. All Rights Reserved. #
  4. ; # Visit http://www.visual-installer.com/ for more details. #
  5. ; #######################################################################################
  6. ; This script was created from .vdproj file. Not all features from .vdproj file may have been transfered.
  7. ; See the Inno Setup documentation at http://www.jrsoftware.org/ for details on creating script files!
  8. ;--------------------------------
  9. ; Product details
  10. #define PRODUCT_NAME "Aso_Fuel"
  11. ;Répertoire installation
  12. #define PRODUCT_CODE "{{0AFFBDE8-FD9A-4572-A5F1-30789B83F5DA}"
  13. #define PRODUCT_VERSION "3.1.1.1"
  14. #define MANUFACTURER "AAX"
  15. #define TITLE "Aso Fuel"
  16. #define MyAppExeName "Fuel_ASO.exe"
  17. [Setup]
  18. AppName={#PRODUCT_NAME}
  19. AppVersion={#PRODUCT_VERSION}
  20. AppId={#PRODUCT_CODE}
  21. DefaultDirName={pf}\{#MANUFACTURER}\{#PRODUCT_NAME}
  22. DefaultGroupName={#PRODUCT_NAME}
  23. AppCopyright=Copyright (c) 2015-2025 {#MANUFACTURER}
  24. AppPublisher={#MANUFACTURER}
  25. OutputDir=Release
  26. OutputBaseFilename=Fuel_ASO_Install
  27. [languages]
  28. Name: "fr" ; MessagesFile: "compiler:Languages\French.isl"
  29. [Files]
  30. ;Source: "D:\Patrick\Mes Téléchargements\dotNetFx45_Full_setup.exe"; DestDir: {app}; Check: NOT verifDotNet
  31. Source: "..\Fuel_ASO\Resources\pompe01.ico"; DestDir: "{app}\"; DestName: "pompe01.ico"; Flags: "ignoreversion"
  32. Source: "..\Fuel_ASO\bin\Release\Fuel_ASO.exe" ; DestDir: "{app}\"; DestName: {#MyAppExeName} ;
  33. Source: "..\Fuel_ASO\bin\Release\Fuel_ASO.exe.config" ; DestDir: "{app}\"; DestName: {#MyAppExeName}.config ;
  34. Source: "..\Fuel_ASO\bin\Release\Microsoft.AspNet.SignalR.Client.dll"; DestDir: "{app}\"; DestName: "Microsoft.AspNet.SignalR.Client.dll";
  35. Source: "..\Fuel_ASO\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}\"; DestName: "Newtonsoft.Json.dll";
  36. Source: "..\Fuel_ASO\bin\Release\Ionic.Utils.Zip.dll"; DestDir: "{app}\"; DestName: "Ionic.Utils.Zip.dll";
  37. [Registry]
  38. Root: "HKLM"; Subkey: "Software\{#MANUFACTURER}\{#PRODUCT_NAME}"; ValueType: string; ValueName: "softinstalled"; ValueData: "YES"; Flags: createvalueifdoesntexist uninsdeletekey ; Permissions: everyone-full; Languages: fr
  39. [Copy]
  40. [Icons]
  41. Name: "{userdesktop}\Aso Fuel"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}\"; IconFilename: "{app}\pompe01.ico"; IconIndex: "0"; Flags: createonlyiffileexists
  42. Name: "{userprograms}\ASO\Fuel\Aso_Fuel"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}\";IconFilename: "{app}\pompe01.ico"; IconIndex: "0"; Flags: createonlyiffileexists
  43. Name: "{userprograms}\ASO\Fuel\{cm:UninstallProgram,Fuel ASO}"; Filename: "{uninstallexe}"
  44. [Run]
  45. ;Filename: "{app}\dotNetFx45_Full_setup.exe"; WorkingDir: {app}; StatusMsg: Installation en cours de .NET Framework 4.5, cette opération peut prendre quelques minutes...; Check: NOT verifDotNet
  46. Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppExeName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
  47. [Dirs]
  48. Name: "{commonappdata}\AsoFuel"; Languages: fr; Permissions: everyone-modify
  49. [Code]
  50. function IsDotNetDetected(version: string; service: cardinal): boolean;
  51. // Indicates whether the specified version and service pack of the .NET Framework is installed.
  52. //
  53. // version -- Specify one of these strings for the required .NET Framework version:
  54. // 'v1.1.4322' .NET Framework 1.1
  55. // 'v2.0.50727' .NET Framework 2.0
  56. // 'v3.0' .NET Framework 3.0
  57. // 'v3.5' .NET Framework 3.5
  58. // 'v4\Client' .NET Framework 4.0 Client Profile
  59. // 'v4\Full' .NET Framework 4.0 Full Installation
  60. // 'v4.5' .NET Framework 4.5
  61. //
  62. // service -- Specify any non-negative integer for the required service pack level:
  63. // 0 No service packs required
  64. // 1, 2, etc. Service pack 1, 2, etc. required
  65. var
  66. key: string;
  67. install, release, serviceCount: cardinal;
  68. check45, success: boolean;
  69. begin
  70. // .NET 4.5 installs as update to .NET 4.0 Full
  71. if version = 'v4.5' then begin
  72. version := 'v4\Full';
  73. check45 := true;
  74. end else
  75. check45 := false;
  76. // installation key group for all .NET versions
  77. key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
  78. // .NET 3.0 uses value InstallSuccess in subkey Setup
  79. if Pos('v3.0', version) = 1 then begin
  80. success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
  81. end else begin
  82. success := RegQueryDWordValue(HKLM, key, 'Install', install);
  83. end;
  84. // .NET 4.0/4.5 uses value Servicing instead of SP
  85. if Pos('v4', version) = 1 then begin
  86. success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
  87. end else begin
  88. success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
  89. end;
  90. // .NET 4.5 uses additional value Release
  91. if check45 then begin
  92. success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
  93. success := success and (release >= 378389);
  94. end;
  95. result := success and (install = 1) and (serviceCount >= service);
  96. end;
  97. function verifDotNet(): Boolean;
  98. begin
  99. result := IsDotNetDetected('v4.5', 0);
  100. end;
  101. function GetNumber(var temp: String): Integer;
  102. var
  103. part: String;
  104. pos1: Integer;
  105. begin
  106. if Length(temp) = 0 then
  107. begin
  108. Result := -1;
  109. Exit;
  110. end;
  111. pos1 := Pos('.', temp);
  112. if (pos1 = 0) then
  113. begin
  114. Result := StrToInt(temp);
  115. temp := '';
  116. end
  117. else
  118. begin
  119. part := Copy(temp, 1, pos1 - 1);
  120. temp := Copy(temp, pos1 + 1, Length(temp));
  121. Result := StrToInt(part);
  122. end;
  123. end;
  124. function CompareInner(var temp1, temp2: String): Integer;
  125. var
  126. num1, num2: Integer;
  127. begin
  128. num1 := GetNumber(temp1);
  129. num2 := GetNumber(temp2);
  130. if (num1 = -1) or (num2 = -1) then
  131. begin
  132. Result := 0;
  133. Exit;
  134. end;
  135. if (num1 > num2) then
  136. begin
  137. Result := 1;
  138. end
  139. else if (num1 < num2) then
  140. begin
  141. Result := -1;
  142. end
  143. else
  144. begin
  145. Result := CompareInner(temp1, temp2);
  146. end;
  147. end;
  148. function CompareVersion(str1, str2: String): Integer;
  149. var
  150. temp1, temp2: String;
  151. begin
  152. temp1 := str1;
  153. temp2 := str2;
  154. Result := CompareInner(temp1, temp2);
  155. end;
  156. function InitializeSetup(): Boolean;
  157. var
  158. oldVersion: String;
  159. uninstaller: String;
  160. ErrorCode: Integer;
  161. vCurID :String;
  162. vCurAppName :String;
  163. vCurVer :String;
  164. begin
  165. vCurID:= '{#SetupSetting("AppId")}';
  166. vCurAppName:= '{#SetupSetting("AppName")}';
  167. vCurVer := '{#SetupSetting("AppVersion")}';
  168. //remove first "{" of ID
  169. vCurID:= Copy(vCurID, 2, Length(vCurID) - 1);
  170. //
  171. if RegKeyExists(HKEY_LOCAL_MACHINE,
  172. 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + vCurID + '_is1') then
  173. begin
  174. RegQueryStringValue(HKEY_LOCAL_MACHINE,
  175. 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + vCurID + '_is1',
  176. 'DisplayVersion', oldVersion);
  177. if (CompareVersion(oldVersion, '{#SetupSetting("AppVersion")}') < 0) then
  178. begin
  179. if MsgBox('Version ' + oldVersion + ' of ' + vCurAppName + ' est déjà installée.' + #13 +#10 +'Voulez-vous installer la version '+vCurVer+' ?',
  180. mbConfirmation, MB_YESNO) = IDYES then
  181. begin
  182. RegQueryStringValue(HKEY_LOCAL_MACHINE,
  183. 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + vCurID + '_is1',
  184. 'UninstallString', uninstaller);
  185. ShellExec('runas', uninstaller, '/SILENT', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
  186. Result := True;
  187. end
  188. else
  189. begin
  190. Result := False;
  191. end;
  192. end
  193. else
  194. begin
  195. if MsgBox('La version ' + oldVersion + ' of ' + vCurAppName + ' est déjà instalée.'+ #13+ #10+ 'Voulez-vous la désintaller et installer la version '+vCurVer+' ?',
  196. mbConfirmation, MB_YESNO) = IDYES then
  197. begin
  198. RegQueryStringValue(HKEY_LOCAL_MACHINE,
  199. 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + vCurID + '_is1',
  200. 'UninstallString', uninstaller);
  201. ShellExec('runas', uninstaller, '/SILENT', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
  202. Result := True;
  203. end
  204. else
  205. begin
  206. Result := False;
  207. end
  208. end;
  209. end
  210. else
  211. begin
  212. Result := True;
  213. end;
  214. end;