diff --git a/installer/CodeDependencies.iss b/installer/CodeDependencies.iss index f976d719..d5adc389 100644 --- a/installer/CodeDependencies.iss +++ b/installer/CodeDependencies.iss @@ -1,14 +1,6 @@ -; -- CodeDependencies.iss -- -; -; This script shows how to download and install any dependency such as .NET, -; Visual C++ or SQL Server during your application's installation process. -; -; contribute: https://github.com/DomGries/InnoDependencyInstaller +; https://github.com/DomGries/InnoDependencyInstaller -; ----------- -; SHARED CODE -; ----------- [Code] // types and variables type @@ -225,7 +217,7 @@ function Dependency_IsNetCoreInstalled(const Version: String): Boolean; var ResultCode: Integer; begin - // source code: https://github.com/dotnet/deployment-tools/tree/master/src/clickonce/native/projects/NetCoreCheck + // source code: https://github.com/dotnet/deployment-tools/tree/main/src/clickonce/native/projects/NetCoreCheck if not FileExists(ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe') then begin ExtractTemporaryFile('netcorecheck' + Dependency_ArchSuffix + '.exe'); end; @@ -293,13 +285,15 @@ begin end; procedure Dependency_AddDotNet48; +var + Version: Cardinal; begin - // https://dotnet.microsoft.com/download/dotnet-framework/net48 - if not IsDotNetInstalled(net48, 0) then begin + // https://dotnet.microsoft.com/download/dotnet-framework/net481 + if not RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'Release', Version) or (Version < 533320) then begin Dependency_Add('dotnetfx48.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.8', - 'https://go.microsoft.com/fwlink/?LinkId=2085155', + '.NET Framework 4.8.1', + 'https://go.microsoft.com/fwlink/?LinkId=2203304', '', False, False); end; end; @@ -307,11 +301,11 @@ end; procedure Dependency_AddNetCore31; begin // https://dotnet.microsoft.com/download/dotnet-core/3.1 - if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 3.1.22') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 3.1.32') then begin Dependency_Add('netcore31' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Core Runtime 3.1.22' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/c2437aed-8cc4-41d0-a239-d6c7cf7bddae/062c37e8b06df740301c0bca1b0b7b9a/dotnet-runtime-3.1.22-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/4e95705e-1bb6-4764-b899-1b97eb70ea1d/dd311e073bd3e25b2efe2dcf02727e81/dotnet-runtime-3.1.22-win-x64.exe'), + '.NET Core Runtime 3.1.32' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/de4b3438-24a2-4d1d-a845-97355cf97b71/515abb880478b49f7c1bced8fbf07b16/dotnet-runtime-3.1.32-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/476eba79-f17f-49c8-a213-0f24a22cd026/37c02de81ff5b76ac57a5427462395f1/dotnet-runtime-3.1.32-win-x64.exe'), '', False, False); end; end; @@ -319,11 +313,11 @@ end; procedure Dependency_AddNetCore31Asp; begin // https://dotnet.microsoft.com/download/dotnet-core/3.1 - if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 3.1.22') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 3.1.32') then begin Dependency_Add('netcore31asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 3.1.22' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/0a1a2ee5-b8ed-4f0d-a4af-a7bce9a9ac2b/d452039b49d79e8897f272c3ab34b875/aspnetcore-runtime-3.1.22-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/80e52143-31e8-450e-aa94-b3f8484aaba9/4b69e5c77d50e7b367960a0079c90a99/aspnetcore-runtime-3.1.22-win-x64.exe'), + 'ASP.NET Core Runtime 3.1.32' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/63b482d2-04b2-4dd4-baaf-d1e78de80738/40321091c872f4e77337b68fc61a5a07/aspnetcore-runtime-3.1.32-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/98910750-2644-472c-ab2b-17f315ccb953/c2a4c223ee11e2eec7d13744e7a45547/aspnetcore-runtime-3.1.32-win-x64.exe'), '', False, False); end; end; @@ -331,11 +325,11 @@ end; procedure Dependency_AddNetCore31Desktop; begin // https://dotnet.microsoft.com/download/dotnet-core/3.1 - if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 3.1.22') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 3.1.32') then begin Dependency_Add('netcore31desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 3.1.22' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/e4fcd574-4487-4b4b-8ca8-c23177c6f59f/c6d67a04956169dc21895cdcb42bf344/windowsdesktop-runtime-3.1.22-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/1c14e24b-7f31-42dc-ba3c-83295a2d6f7e/41b93591162dfe556cc160ae44fbe75e/windowsdesktop-runtime-3.1.22-win-x64.exe'), + '.NET Desktop Runtime 3.1.32' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/3f353d2c-0431-48c5-bdf6-fbbe8f901bb5/542a4af07c1df5136a98a1c2df6f3d62/windowsdesktop-runtime-3.1.32-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/b92958c6-ae36-4efa-aafe-569fced953a5/1654639ef3b20eb576174c1cc200f33a/windowsdesktop-runtime-3.1.32-win-x64.exe'), '', False, False); end; end; @@ -343,11 +337,11 @@ end; procedure Dependency_AddDotNet50; begin // https://dotnet.microsoft.com/download/dotnet/5.0 - if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 5.0.13') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 5.0.17') then begin Dependency_Add('dotnet50' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Runtime 5.0.13' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/4a79fcd5-d61b-4606-8496-68071c8099c6/2bf770ca40521e8c4563072592eadd06/dotnet-runtime-5.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/fccf43d2-3e62-4ede-b5a5-592a7ccded7b/6339f1fdfe3317df5b09adf65f0261ab/dotnet-runtime-5.0.13-win-x64.exe'), + '.NET Runtime 5.0.17' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/54683c13-6b04-4d7d-b4d4-1f055b50ea43/e99048e2840d57040e8312058853a5b9/dotnet-runtime-5.0.17-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/a0832b5a-6900-442b-af79-6ffddddd6ba4/e2df0b25dd851ee0b38a86947dd0e42e/dotnet-runtime-5.0.17-win-x64.exe'), '', False, False); end; end; @@ -355,11 +349,11 @@ end; procedure Dependency_AddDotNet50Asp; begin // https://dotnet.microsoft.com/download/dotnet/5.0 - if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 5.0.13') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 5.0.17') then begin Dependency_Add('dotnet50asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 5.0.13' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/340f9482-fc43-4ef7-b434-e2ed57f55cb3/c641b805cef3823769409a6dbac5746b/aspnetcore-runtime-5.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/aac560f3-eac8-437e-aebd-9830119deb10/6a3880161cf527e4ec71f67efe4d91ad/aspnetcore-runtime-5.0.13-win-x64.exe'), + 'ASP.NET Core Runtime 5.0.17' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/4bfa247d-321d-4b29-a34b-62320849059b/8df7a17d9aad4044efe9b5b1c423e82c/aspnetcore-runtime-5.0.17-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/3789ec90-2717-424f-8b9c-3adbbcea6c16/2085cc5ff077b8789ff938015392e406/aspnetcore-runtime-5.0.17-win-x64.exe'), '', False, False); end; end; @@ -367,11 +361,11 @@ end; procedure Dependency_AddDotNet50Desktop; begin // https://dotnet.microsoft.com/download/dotnet/5.0 - if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 5.0.13') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 5.0.17') then begin Dependency_Add('dotnet50desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 5.0.13' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/c8125c6b-d399-4be3-b201-8f1394fc3b25/724758f754fc7b67daba74db8d6d91d9/windowsdesktop-runtime-5.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/2bfb80f2-b8f2-44b0-90c1-d3c8c1c8eac8/409dd3d3367feeeda048f4ff34b32e82/windowsdesktop-runtime-5.0.13-win-x64.exe'), + '.NET Desktop Runtime 5.0.17' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b6fe5f2a-95f4-46f1-9824-f5994f10bc69/db5ec9b47ec877b5276f83a185fdb6a0/windowsdesktop-runtime-5.0.17-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/3aa4e942-42cd-4bf5-afe7-fc23bd9c69c5/64da54c8864e473c19a7d3de15790418/windowsdesktop-runtime-5.0.17-win-x64.exe'), '', False, False); end; end; @@ -379,11 +373,11 @@ end; procedure Dependency_AddDotNet60; begin // https://dotnet.microsoft.com/download/dotnet/6.0 - if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 6.0.2') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 6.0.20') then begin Dependency_Add('dotnet60' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Runtime 6.0.2' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/2c266f64-4c86-4209-8113-0146a9c93bef/f771275c8cb0df884dcfc290569fba3a/dotnet-runtime-6.0.2-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/0b3e8ad9-7914-4489-8d02-58b551c2efea/fdc3f3a171bf0b7bb90c01f5faa59fc4/dotnet-runtime-6.0.2-win-x64.exe'), + '.NET Runtime 6.0.20' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/3be5ee3a-c171-4cd2-ab98-00ca5c11eb8c/6fd31294b0c6c670ab5c060592935203/dotnet-runtime-6.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/3cfb6d2a-afbe-4ae7-8e5b-776f350654cc/6e8d858a60fe15381f3c84d8ca66c4a7/dotnet-runtime-6.0.20-win-x64.exe'), '', False, False); end; end; @@ -391,11 +385,11 @@ end; procedure Dependency_AddDotNet60Asp; begin // https://dotnet.microsoft.com/download/dotnet/6.0 - if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 6.0.2') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 6.0.20') then begin Dependency_Add('dotnet60asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 6.0.2' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/ad7d20a7-debf-4399-b59b-04419ae7adfe/73918e15d0bde4431546d8f659ed7381/aspnetcore-runtime-6.0.2-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/ef70aabf-e945-4a82-8303-7675e84a183c/a1ef3d32b8572842684974747eee034b/aspnetcore-runtime-6.0.2-win-x64.exe'), + 'ASP.NET Core Runtime 6.0.20' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/0e37c76c-53b4-4eea-8f5c-6ad2f8d5fe3c/88a8620329ced1aee271992a5b56d236/aspnetcore-runtime-6.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/be9f67fd-60af-45b1-9bca-a7bcc0e86e7e/6a750f7d7432937b3999bb4c5325062a/aspnetcore-runtime-6.0.20-win-x64.exe'), '', False, False); end; end; @@ -403,11 +397,47 @@ end; procedure Dependency_AddDotNet60Desktop; begin // https://dotnet.microsoft.com/download/dotnet/6.0 - if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 6.0.2') then begin + if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 6.0.20') then begin Dependency_Add('dotnet60desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 6.0.2' + Dependency_ArchTitle, - Dependency_String('https://download.visualstudio.microsoft.com/download/pr/f5f7ed62-0973-400b-9772-4cf0eef96801/87959c77e1fceeafc40c867f9c238bbc/windowsdesktop-runtime-6.0.2-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/7fbe3ce3-4082-4995-93de-674038ac919b/56d3fa94d78dc3f39fc70d73ef174c93/windowsdesktop-runtime-6.0.2-win-x64.exe'), + '.NET Desktop Runtime 6.0.20' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/0413b619-3eb2-4178-a78e-8d1aafab1a01/5247f08ea3c13849b68074a2142fbf31/windowsdesktop-runtime-6.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/1146f414-17c7-4184-8b10-1addfa5315e4/39db5573efb029130add485566320d74/windowsdesktop-runtime-6.0.20-win-x64.exe'), + '', False, False); + end; +end; + +procedure Dependency_AddDotNet70; +begin + // https://dotnet.microsoft.com/download/dotnet/7.0 + if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 7.0.9') then begin + Dependency_Add('dotnet70' + Dependency_ArchSuffix + '.exe', + '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', + '.NET Runtime 7.0.9' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/305a85f5-2b0d-459b-b2ea-caf71b98d25d/805edc610efa49432e5e268bbba4eacb/dotnet-runtime-7.0.9-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/73058888-02a4-4f6d-b3cd-845531c2d7d0/a785e54b7f12046c00714b2ba759e173/dotnet-runtime-7.0.9-win-x64.exe'), + '', False, False); + end; +end; + +procedure Dependency_AddDotNet70Asp; +begin + // https://dotnet.microsoft.com/download/dotnet/7.0 + if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 7.0.9') then begin + Dependency_Add('dotnet70asp' + Dependency_ArchSuffix + '.exe', + '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', + 'ASP.NET Core Runtime 7.0.9' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/6ec3b357-31df-4b18-948f-4979a5b4b99f/fdeec71fc7f0f34ecfa0cb8b2b897da0/aspnetcore-runtime-7.0.9-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/edd9c9b1-0c49-4297-9197-9392b2462318/d06fedaefb256d801ce94ade76af3ad9/aspnetcore-runtime-7.0.9-win-x64.exe'), + '', False, False); + end; +end; + +procedure Dependency_AddDotNet70Desktop; +begin + // https://dotnet.microsoft.com/download/dotnet/7.0 + if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 7.0.9') then begin + Dependency_Add('dotnet70desktop' + Dependency_ArchSuffix + '.exe', + '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', + '.NET Desktop Runtime 7.0.9' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/139b19d0-2d39-48ce-b59a-aec437509c20/ea6a2711eec53660c3b14d78b9fb2963/windowsdesktop-runtime-7.0.9-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/7727acb3-25ca-473b-a392-75afeb33cab7/f11f0477fd2fcfbb3111881377d0c9bb/windowsdesktop-runtime-7.0.9-win-x64.exe'), '', False, False); end; end; @@ -486,6 +516,9 @@ end; procedure Dependency_AddDirectX; begin +#ifdef Dependency_Files_DirectX + ExtractTemporaryFile('dxwebsetup.exe'); +#endif // https://www.microsoft.com/en-us/download/details.aspx?id=35 Dependency_Add('dxwebsetup.exe', '/q', @@ -544,12 +577,12 @@ var Version: String; PackedVersion: Int64; begin - // https://www.microsoft.com/en-us/download/details.aspx?id=56840 - if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(13, 0, 5026, 0)) < 0) then begin + // https://www.microsoft.com/en-us/download/details.aspx?id=103447 + if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(13, 0, 6404, 1)) < 0) then begin Dependency_Add('sql2016express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2016 Service Pack 2 Express', - 'https://download.microsoft.com/download/3/7/6/3767D272-76A1-4F31-8849-260BD37924E4/SQLServer2016-SSEI-Expr.exe', + 'SQL Server 2016 Service Pack 3 Express', + 'https://download.microsoft.com/download/f/a/8/fa83d147-63d1-449c-b22d-5fef9bd5bb46/SQLServer2016-SSEI-Expr.exe', '', False, False); end; end; @@ -584,207 +617,65 @@ begin end; end; - -[Setup] -; ------------- -; EXAMPLE SETUP -; ------------- -#ifndef Dependency_NoExampleSetup - -; comment out dependency defines to disable installing them -#define UseDotNet35 -#define UseDotNet40 -#define UseDotNet45 -#define UseDotNet46 -#define UseDotNet47 -#define UseDotNet48 - -; requires netcorecheck.exe and netcorecheck_x64.exe (see download link below) -#define UseNetCoreCheck -#ifdef UseNetCoreCheck - #define UseNetCore31 - #define UseNetCore31Asp - #define UseNetCore31Desktop - #define UseDotNet50 - #define UseDotNet50Asp - #define UseDotNet50Desktop - #define UseDotNet60 - #define UseDotNet60Asp - #define UseDotNet60Desktop -#endif - -#define UseVC2005 -#define UseVC2008 -#define UseVC2010 -#define UseVC2012 -#define UseVC2013 -#define UseVC2015To2022 - -; requires dxwebsetup.exe (see download link below) -;#define UseDirectX - -#define UseSql2008Express -#define UseSql2012Express -#define UseSql2014Express -#define UseSql2016Express -#define UseSql2017Express -#define UseSql2019Express - -#define MyAppSetupName 'MyProgram' -#define MyAppVersion '1.0' -#define MyAppPublisher 'Inno Setup' -#define MyAppCopyright 'Copyright © Inno Setup' -#define MyAppURL 'https://jrsoftware.org/isinfo.php' - -AppName={#MyAppSetupName} -AppVersion={#MyAppVersion} -AppVerName={#MyAppSetupName} {#MyAppVersion} -AppCopyright={#MyAppCopyright} -VersionInfoVersion={#MyAppVersion} -VersionInfoCompany={#MyAppPublisher} -AppPublisher={#MyAppPublisher} -AppPublisherURL={#MyAppURL} -AppSupportURL={#MyAppURL} -AppUpdatesURL={#MyAppURL} -OutputBaseFilename={#MyAppSetupName}-{#MyAppVersion} -DefaultGroupName={#MyAppSetupName} -DefaultDirName={autopf}\{#MyAppSetupName} -UninstallDisplayIcon={app}\MyProgram.exe -SourceDir=src -OutputDir={#SourcePath}\bin -AllowNoIcons=yes -PrivilegesRequired=admin - -; remove next line if you only deploy 32-bit binaries and dependencies -ArchitecturesInstallIn64BitMode=x64 - -[Languages] -Name: en; MessagesFile: "compiler:Default.isl" -Name: nl; MessagesFile: "compiler:Languages\Dutch.isl" -Name: de; MessagesFile: "compiler:Languages\German.isl" - -[Files] -#ifdef UseNetCoreCheck -; download netcorecheck.exe: https://go.microsoft.com/fwlink/?linkid=2135256 -; download netcorecheck_x64.exe: https://go.microsoft.com/fwlink/?linkid=2135504 -Source: "netcorecheck.exe"; Flags: dontcopy noencryption -Source: "netcorecheck_x64.exe"; Flags: dontcopy noencryption -#endif - -#ifdef UseDirectX -Source: "dxwebsetup.exe"; Flags: dontcopy noencryption -#endif - -Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Dependency_IsX64; Flags: ignoreversion -Source: "MyProg.exe"; DestDir: "{app}"; Check: not Dependency_IsX64; Flags: ignoreversion - -[Icons] -Name: "{group}\{#MyAppSetupName}"; Filename: "{app}\MyProg.exe" -Name: "{group}\{cm:UninstallProgram,{#MyAppSetupName}}"; Filename: "{uninstallexe}" -Name: "{commondesktop}\{#MyAppSetupName}"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon - -[Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}" - -[Run] -Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,{#MyAppSetupName}}"; Flags: nowait postinstall skipifsilent - -[Code] -function InitializeSetup: Boolean; +procedure Dependency_AddSql2022Express; +var + Version: String; + PackedVersion: Int64; begin -#ifdef UseDotNet35 - Dependency_AddDotNet35; -#endif -#ifdef UseDotNet40 - Dependency_AddDotNet40; -#endif -#ifdef UseDotNet45 - Dependency_AddDotNet45; -#endif -#ifdef UseDotNet46 - Dependency_AddDotNet46; -#endif -#ifdef UseDotNet47 - Dependency_AddDotNet47; -#endif -#ifdef UseDotNet48 - Dependency_AddDotNet48; -#endif + // https://www.microsoft.com/en-us/download/details.aspx?id=104781 + if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(16, 0, 1000, 6)) < 0) then begin + Dependency_Add('sql2022express' + Dependency_ArchSuffix + '.exe', + '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', + 'SQL Server 2022 Express', + 'https://go.microsoft.com/fwlink/p/?linkid=2216019', + '', False, False); + end; +end; -#ifdef UseNetCore31 - Dependency_AddNetCore31; -#endif -#ifdef UseNetCore31Asp - Dependency_AddNetCore31Asp; -#endif -#ifdef UseNetCore31Desktop - Dependency_AddNetCore31Desktop; -#endif -#ifdef UseDotNet50 - Dependency_AddDotNet50; -#endif -#ifdef UseDotNet50Asp - Dependency_AddDotNet50Asp; -#endif -#ifdef UseDotNet50Desktop - Dependency_AddDotNet50Desktop; -#endif -#ifdef UseDotNet60 - Dependency_AddDotNet60; -#endif -#ifdef UseDotNet60Asp - Dependency_AddDotNet60Asp; -#endif -#ifdef UseDotNet60Desktop - Dependency_AddDotNet60Desktop; -#endif +procedure Dependency_AddWebView2; +begin + // https://developer.microsoft.com/en-us/microsoft-edge/webview2 + if not RegValueExists(HKLM, Dependency_String('SOFTWARE', 'SOFTWARE\WOW6432Node') + '\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}', 'pv') then begin + Dependency_Add('MicrosoftEdgeWebview2Setup.exe', + '/silent /install', + 'WebView2 Runtime', + 'https://go.microsoft.com/fwlink/p/?LinkId=2124703', + '', False, False); + end; +end; -#ifdef UseVC2005 - Dependency_AddVC2005; -#endif -#ifdef UseVC2008 - Dependency_AddVC2008; -#endif -#ifdef UseVC2010 - Dependency_AddVC2010; -#endif -#ifdef UseVC2012 - Dependency_AddVC2012; -#endif -#ifdef UseVC2013 - //Dependency_ForceX86 := True; // force 32-bit install of next dependencies - Dependency_AddVC2013; - //Dependency_ForceX86 := False; // disable forced 32-bit install again -#endif -#ifdef UseVC2015To2022 - Dependency_AddVC2015To2022; -#endif +procedure Dependency_AddAccessDatabaseEngine2010; +begin + // https://www.microsoft.com/en-us/download/details.aspx?id=13255 + if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE') then begin + Dependency_Add('AccessDatabaseEngine2010' + Dependency_ArchSuffix + '.exe', + '/quiet', + 'Microsoft Access Database Engine 2010' + Dependency_ArchTitle, + Dependency_String('https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine.exe', 'https://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_X64.exe'), + '', False, False); + end; +end; -#ifdef UseDirectX - ExtractTemporaryFile('dxwebsetup.exe'); - Dependency_AddDirectX; -#endif +procedure Dependency_AddAccessDatabaseEngine2016; +begin + // https://www.microsoft.com/en-us/download/details.aspx?id=54920 + if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ACE') then begin + Dependency_Add('AccessDatabaseEngine2016' + Dependency_ArchSuffix + '.exe', + '/quiet', + 'Microsoft Access Database Engine 2016' + Dependency_ArchTitle, + Dependency_String('https://download.microsoft.com/download/3/5/C/35C84C36-661A-44E6-9324-8786B8DBE231/accessdatabaseengine.exe', 'https://download.microsoft.com/download/3/5/C/35C84C36-661A-44E6-9324-8786B8DBE231/accessdatabaseengine_X64.exe'), + '', False, False); + end; +end; -#ifdef UseSql2008Express - Dependency_AddSql2008Express; -#endif -#ifdef UseSql2012Express - Dependency_AddSql2012Express; -#endif -#ifdef UseSql2014Express - Dependency_AddSql2014Express; -#endif -#ifdef UseSql2016Express - Dependency_AddSql2016Express; -#endif -#ifdef UseSql2017Express - Dependency_AddSql2017Express; -#endif -#ifdef UseSql2019Express - Dependency_AddSql2019Express; +[Files] +#ifdef Dependency_Path_NetCoreCheck +; download netcorecheck.exe: https://www.nuget.org/packages/Microsoft.NET.Tools.NETCoreCheck.x86 +; download netcorecheck_x64.exe: https://www.nuget.org/packages/Microsoft.NET.Tools.NETCoreCheck.x64 +Source: "{#Dependency_Path_NetCoreCheck}netcorecheck.exe"; Flags: dontcopy noencryption +Source: "{#Dependency_Path_NetCoreCheck}netcorecheck_x64.exe"; Flags: dontcopy noencryption #endif - Result := True; -end; - +#ifdef Dependency_Path_DirectX +Source: "{#Dependency_Path_DirectX}dxwebsetup.exe"; Flags: dontcopy noencryption #endif