diff --git a/CodeDependencies.iss b/CodeDependencies.iss index 2391aea..bf4535d 100644 --- a/CodeDependencies.iss +++ b/CodeDependencies.iss @@ -16,6 +16,7 @@ type Filename: String; Parameters: String; Title: String; + Components: String; URL: String; Checksum: String; ForceSuccess: Boolean; @@ -23,21 +24,20 @@ type end; var - Dependency_Memo: String; Dependency_List: array of TDependency_Entry; Dependency_NeedRestart, Dependency_ForceX86: Boolean; Dependency_DownloadPage: TDownloadWizardPage; + Dependency_DeselectComponents: String; -procedure Dependency_Add(const Filename, Parameters, Title, URL, Checksum: String; const ForceSuccess, RestartAfter: Boolean); +procedure Dependency_Add(const Filename, Parameters, Title, Components, URL, Checksum: String; const ForceSuccess, RestartAfter: Boolean); var Dependency: TDependency_Entry; DependencyCount: Integer; begin - Dependency_Memo := Dependency_Memo + #13#10 + '%1' + Title; - Dependency.Filename := Filename; Dependency.Parameters := Parameters; Dependency.Title := Title; + Dependency.Components := Components; if FileExists(ExpandConstant('{tmp}{\}') + Filename) then begin Dependency.URL := ''; @@ -54,6 +54,11 @@ begin Dependency_List[DependencyCount] := Dependency; end; +procedure Dependency_DeselectComponent(Component: String); +begin + Dependency_DeselectComponents := Dependency_DeselectComponents + ' !' + Component; +end; + procedure Dependency_Internal1; begin @@ -73,6 +78,9 @@ begin Dependency_DownloadPage.Show; for DependencyIndex := 0 to DependencyCount - 1 do begin + if (Dependency_List[DependencyIndex].Components <> '') and not WizardIsComponentSelected(Dependency_List[DependencyIndex].Components) then + continue; + if Dependency_List[DependencyIndex].URL <> '' then begin Dependency_DownloadPage.Clear; Dependency_DownloadPage.Add(Dependency_List[DependencyIndex].URL, Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Checksum); @@ -105,6 +113,9 @@ begin if Result = '' then begin for DependencyIndex := 0 to DependencyCount - 1 do begin + if (Dependency_List[DependencyIndex].Components <> '') and not WizardIsComponentSelected(Dependency_List[DependencyIndex].Components) then + continue; + Dependency_DownloadPage.SetText(Dependency_List[DependencyIndex].Title, ''); Dependency_DownloadPage.SetProgress(DependencyIndex + 1, DependencyCount + 1); @@ -162,6 +173,8 @@ end; function Dependency_Internal3(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; +var + DependencyCount, DependencyIndex: Integer; begin Result := ''; if MemoUserInfoInfo <> '' then begin @@ -183,11 +196,17 @@ begin Result := Result + MemoTasksInfo; end; - if Dependency_Memo <> '' then begin + DependencyCount := GetArrayLength(Dependency_List); + if DependencyCount > 0 then begin if MemoTasksInfo = '' then begin Result := Result + SetupMessage(msgReadyMemoTasks); end; - Result := Result + FmtMessage(Dependency_Memo, [Space]); + + for DependencyIndex := 0 to DependencyCount - 1 do begin + if (Dependency_List[DependencyIndex].Components = '') or WizardIsComponentSelected(Dependency_List[DependencyIndex].Components) then begin + Result := Result + NewLine + Space + Dependency_List[DependencyIndex].Title; + end; + end; end; end; @@ -197,6 +216,13 @@ begin Result := Dependency_NeedRestart; end; + +procedure Dependency_Internal5(CurPageID: integer); +begin + if CurPageId = wpSelectComponents then + WizardSelectComponents(Dependency_DeselectComponents); +end; + function Dependency_IsX64: Boolean; begin Result := not Dependency_ForceX86 and Is64BitInstallMode; @@ -238,7 +264,7 @@ begin if not IsDotNetInstalled(net35, 1) then begin Dependency_Add('dotnetfx35.exe', '/lang:enu /passive /norestart', - '.NET Framework 3.5 Service Pack 1', + '.NET Framework 3.5 Service Pack 1', '', 'https://download.microsoft.com/download/2/0/E/20E90413-712F-438C-988E-FDAA79A8AC3D/dotnetfx35.exe', '', False, False); end; @@ -250,7 +276,7 @@ begin if not IsDotNetInstalled(net4full, 0) then begin Dependency_Add('dotNetFx40_Full_setup.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.0', + '.NET Framework 4.0', '', 'https://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe', '', False, False); end; @@ -262,7 +288,7 @@ begin if not IsDotNetInstalled(net452, 0) then begin Dependency_Add('dotnetfx45.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.5.2', + '.NET Framework 4.5.2', '', 'https://go.microsoft.com/fwlink/?LinkId=397707', '', False, False); end; @@ -274,7 +300,7 @@ begin if not IsDotNetInstalled(net462, 0) then begin Dependency_Add('dotnetfx46.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.6.2', + '.NET Framework 4.6.2', '', 'https://go.microsoft.com/fwlink/?linkid=780596', '', False, False); end; @@ -286,7 +312,7 @@ begin if not IsDotNetInstalled(net472, 0) then begin Dependency_Add('dotnetfx47.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.7.2', + '.NET Framework 4.7.2', '', 'https://go.microsoft.com/fwlink/?LinkId=863262', '', False, False); end; @@ -298,7 +324,7 @@ begin if not IsDotNetInstalled(net48, 0) then begin Dependency_Add('dotnetfx48.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Framework 4.8', + '.NET Framework 4.8', '', 'https://go.microsoft.com/fwlink/?LinkId=2085155', '', False, False); end; @@ -310,7 +336,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 3.1.22') then begin Dependency_Add('netcore31' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Core Runtime 3.1.22' + Dependency_ArchTitle, + '.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'), '', False, False); end; @@ -322,7 +348,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 3.1.22') then begin Dependency_Add('netcore31asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 3.1.22' + Dependency_ArchTitle, + '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'), '', False, False); end; @@ -334,7 +360,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 3.1.22') then begin Dependency_Add('netcore31desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 3.1.22' + Dependency_ArchTitle, + '.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'), '', False, False); end; @@ -346,7 +372,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 5.0.13') then begin Dependency_Add('dotnet50' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Runtime 5.0.13' + Dependency_ArchTitle, + '.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'), '', False, False); end; @@ -358,7 +384,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 5.0.13') then begin Dependency_Add('dotnet50asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 5.0.13' + Dependency_ArchTitle, + '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'), '', False, False); end; @@ -370,7 +396,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 5.0.13') then begin Dependency_Add('dotnet50desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 5.0.13' + Dependency_ArchTitle, + '.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'), '', False, False); end; @@ -382,7 +408,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App 6.0.1') then begin Dependency_Add('dotnet60' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Runtime 6.0.1' + Dependency_ArchTitle, + '.NET Runtime 6.0.1' + Dependency_ArchTitle, '', Dependency_String('https://download.visualstudio.microsoft.com/download/pr/a4583478-b841-4b42-8118-a40069a16ba7/402e04d30b6df8b9f0e191bbbf45a217/dotnet-runtime-6.0.1-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/df4372ca-82c8-4bfa-acf9-c49e27279e7e/6bddefd26964017ff520dc1443029e04/dotnet-runtime-6.0.1-win-x64.exe'), '', False, False); end; @@ -394,7 +420,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App 6.0.1') then begin Dependency_Add('dotnet60asp' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - 'ASP.NET Core Runtime 6.0.1' + Dependency_ArchTitle, + 'ASP.NET Core Runtime 6.0.1' + Dependency_ArchTitle, '', Dependency_String('https://download.visualstudio.microsoft.com/download/pr/a706a729-c897-4e01-b51e-af8bf9c0183e/25d022b1b1976ab267ffd862d140dc20/aspnetcore-runtime-6.0.1-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/d526db30-5bfe-4c24-808c-4d8f5d2ba479/ae90c40bdefb2f1775d812ede8e84309/aspnetcore-runtime-6.0.1-win-x64.exe'), '', False, False); end; @@ -406,7 +432,7 @@ begin if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App 6.0.1') then begin Dependency_Add('dotnet60desktop' + Dependency_ArchSuffix + '.exe', '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', - '.NET Desktop Runtime 6.0.1' + Dependency_ArchTitle, + '.NET Desktop Runtime 6.0.1' + Dependency_ArchTitle, '', Dependency_String('https://download.visualstudio.microsoft.com/download/pr/7977218c-1a01-4b69-a8ec-9d9311a6de5b/4c74f995295be78a9ebe1d5fede8f7f3/windowsdesktop-runtime-6.0.1-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/bf058765-6f71-4971-aee1-15229d8bfb3e/c3366e6b74bec066487cd643f915274d/windowsdesktop-runtime-6.0.1-win-x64.exe'), '', False, False); end; @@ -418,7 +444,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{86C9D5AA-F00C-4921-B3F2-C60AF92E2844}', '{A8D19029-8E5C-4E22-8011-48070F9E796E}'), PackVersionComponents(8, 0, 61000, 0)) then begin Dependency_Add('vcredist2005' + Dependency_ArchSuffix + '.exe', '/q', - 'Visual C++ 2005 Service Pack 1 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2005 Service Pack 1 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.EXE', 'https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.EXE'), '', False, False); end; @@ -430,7 +456,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{DE2C306F-A067-38EF-B86C-03DE4B0312F9}', '{FDA45DDF-8E17-336F-A3ED-356B7B7C688A}'), PackVersionComponents(9, 0, 30729, 6161)) then begin Dependency_Add('vcredist2008' + Dependency_ArchSuffix + '.exe', '/q', - 'Visual C++ 2008 Service Pack 1 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2008 Service Pack 1 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe', 'https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe'), '', False, False); end; @@ -442,7 +468,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{1F4F1D2A-D9DA-32CF-9909-48485DA06DD5}', '{5B75F761-BAC8-33BC-A381-464DDDD813A3}'), PackVersionComponents(10, 0, 40219, 0)) then begin Dependency_Add('vcredist2010' + Dependency_ArchSuffix + '.exe', '/passive /norestart', - 'Visual C++ 2010 Service Pack 1 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2010 Service Pack 1 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe', 'https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe'), '', False, False); end; @@ -454,7 +480,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{4121ED58-4BD9-3E7B-A8B5-9F8BAAE045B7}', '{EFA6AFA1-738E-3E00-8101-FD03B86B29D1}'), PackVersionComponents(11, 0, 61030, 0)) then begin Dependency_Add('vcredist2012' + Dependency_ArchSuffix + '.exe', '/passive /norestart', - 'Visual C++ 2012 Update 4 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2012 Update 4 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe', 'https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe'), '', False, False); end; @@ -466,7 +492,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{B59F5BF1-67C8-3802-8E59-2CE551A39FC5}', '{20400CF0-DE7C-327E-9AE4-F0F38D9085F8}'), PackVersionComponents(12, 0, 40664, 0)) then begin Dependency_Add('vcredist2013' + Dependency_ArchSuffix + '.exe', '/passive /norestart', - 'Visual C++ 2013 Update 5 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2013 Update 5 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://download.visualstudio.microsoft.com/download/pr/10912113/5da66ddebb0ad32ebd4b922fd82e8e25/vcredist_x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/10912041/cee5d6bca2ddbcd039da727bf4acb48a/vcredist_x64.exe'), '', False, False); end; @@ -478,7 +504,7 @@ begin if not IsMsiProductInstalled(Dependency_String('{65E5BD06-6392-3027-8C26-853107D3CF1A}', '{36F68A90-239C-34DF-B58C-64B30153CE35}'), PackVersionComponents(14, 30, 30704, 0)) then begin Dependency_Add('vcredist2022' + Dependency_ArchSuffix + '.exe', '/passive /norestart', - 'Visual C++ 2015-2022 Redistributable' + Dependency_ArchTitle, + 'Visual C++ 2015-2022 Redistributable' + Dependency_ArchTitle, '', Dependency_String('https://aka.ms/vs/17/release/vc_redist.x86.exe', 'https://aka.ms/vs/17/release/vc_redist.x64.exe'), '', False, False); end; @@ -489,7 +515,7 @@ begin // https://www.microsoft.com/en-us/download/details.aspx?id=35 Dependency_Add('dxwebsetup.exe', '/q', - 'DirectX Runtime', + 'DirectX Runtime', '', 'https://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe', '', True, False); end; @@ -503,7 +529,7 @@ begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(10, 50, 4000, 0)) < 0) then begin Dependency_Add('sql2008express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2008 R2 Service Pack 2 Express', + 'SQL Server 2008 R2 Service Pack 2 Express', '', Dependency_String('https://download.microsoft.com/download/0/4/B/04BE03CD-EAF3-4797-9D8D-2E08E316C998/SQLEXPR32_x86_ENU.exe', 'https://download.microsoft.com/download/0/4/B/04BE03CD-EAF3-4797-9D8D-2E08E316C998/SQLEXPR_x64_ENU.exe'), '', False, False); end; @@ -518,7 +544,7 @@ begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(11, 0, 7001, 0)) < 0) then begin Dependency_Add('sql2012express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2012 Service Pack 4 Express', + 'SQL Server 2012 Service Pack 4 Express', '', Dependency_String('https://download.microsoft.com/download/B/D/E/BDE8FAD6-33E5-44F6-B714-348F73E602B6/SQLEXPR32_x86_ENU.exe', 'https://download.microsoft.com/download/B/D/E/BDE8FAD6-33E5-44F6-B714-348F73E602B6/SQLEXPR_x64_ENU.exe'), '', False, False); end; @@ -533,7 +559,7 @@ begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(12, 0, 6024, 0)) < 0) then begin Dependency_Add('sql2014express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2014 Service Pack 3 Express', + 'SQL Server 2014 Service Pack 3 Express', '', Dependency_String('https://download.microsoft.com/download/3/9/F/39F968FA-DEBB-4960-8F9E-0E7BB3035959/SQLEXPR32_x86_ENU.exe', 'https://download.microsoft.com/download/3/9/F/39F968FA-DEBB-4960-8F9E-0E7BB3035959/SQLEXPR_x64_ENU.exe'), '', False, False); end; @@ -548,7 +574,7 @@ begin 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 Dependency_Add('sql2016express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2016 Service Pack 2 Express', + 'SQL Server 2016 Service Pack 2 Express', '', 'https://download.microsoft.com/download/3/7/6/3767D272-76A1-4F31-8849-260BD37924E4/SQLServer2016-SSEI-Expr.exe', '', False, False); end; @@ -563,7 +589,7 @@ begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(14, 0, 0, 0)) < 0) then begin Dependency_Add('sql2017express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2017 Express', + 'SQL Server 2017 Express', '', 'https://download.microsoft.com/download/5/E/9/5E9B18CC-8FD5-467E-B5BF-BADE39C51F73/SQLServer2017-SSEI-Expr.exe', '', False, False); end; @@ -578,7 +604,7 @@ begin if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', Version) or not StrToVersion(Version, PackedVersion) or (ComparePackedVersion(PackedVersion, PackVersionComponents(15, 0, 0, 0)) < 0) then begin Dependency_Add('sql2019express' + Dependency_ArchSuffix + '.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=INSTALL /FEATURES=SQL /INSTANCENAME=MSSQLSERVER', - 'SQL Server 2019 Express', + 'SQL Server 2019 Express', '', 'https://download.microsoft.com/download/7/f/8/7f8a9c43-8c8a-4f7c-9f92-83c18d96b681/SQL2019-SSEI-Expr.exe', '', False, False); end;