diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 105fbef..2ecfcb5 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -2,58 +2,57 @@ name: .NET Build + Publish
on:
push:
- branches: [ main ]
+ branches: [main]
pull_request:
- branches: [ main ]
+ branches: [main]
jobs:
build:
-
runs-on: windows-latest
permissions:
contents: write
steps:
- - uses: actions/checkout@v4
- - name: Setup .NET
- uses: actions/setup-dotnet@v4
- with:
- dotnet-version: 8.0.x
- - name: Restore dependencies
- run: dotnet restore
- - name: Build
- run: dotnet build --no-restore -p:PostBuildEvent=
- - name: Publish Windows 64bit
- if: ${{ github.event_name != 'pull_request' }}
- run: dotnet publish --os win --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
- - name: Publish Windows 32bit
- if: ${{ github.event_name != 'pull_request' }}
- run: dotnet publish --os win --arch x86 -c Release --self-contained false MSUScripter/MSUScripter.csproj
- - name: Publish Linux 64bit
- if: ${{ github.event_name != 'pull_request' }}
- run: dotnet publish --os linux --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
- - name: Get version number
- if: ${{ github.event_name != 'pull_request' }}
- id: version
- run: |
- $version = (Get-Item "MSUScripter\bin\Release\net8.0\win-x86\publish\MSUScripter.exe").VersionInfo.ProductVersion
- $version = $version.Split("+")[0]
- Write-Host $version
- Write-Output "number=$version" >> $env:GITHUB_OUTPUT
- shell: pwsh
- - name: Building the Windows installer
- if: ${{ github.event_name != 'pull_request' }}
- run: "\"%programfiles(x86)%/Inno Setup 6/iscc.exe\" \"setup/MSUScripter.iss\""
- shell: cmd
- - name: Building the Linux 64bit package
- if: ${{ github.event_name != 'pull_request' }}
- working-directory: setup
- run: "./LinuxBuildZipper.ps1"
- shell: pwsh
- - name: Upload artifact
- uses: actions/upload-artifact@v4
- if: ${{ github.event_name != 'pull_request' }}
- with:
- path: "setup/Output/*"
- name: MSUScripter_${{ steps.version.outputs.number }}
+ - uses: actions/checkout@v4
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 9.0.x
+ - name: Restore dependencies
+ run: dotnet restore
+ - name: Build
+ run: dotnet build --no-restore -p:PostBuildEvent=
+ - name: Publish Windows 64bit
+ if: ${{ github.event_name != 'pull_request' }}
+ run: dotnet publish --os win --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
+ - name: Publish Windows 32bit
+ if: ${{ github.event_name != 'pull_request' }}
+ run: dotnet publish --os win --arch x86 -c Release --self-contained false MSUScripter/MSUScripter.csproj
+ - name: Publish Linux 64bit
+ if: ${{ github.event_name != 'pull_request' }}
+ run: dotnet publish --os linux --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
+ - name: Get version number
+ if: ${{ github.event_name != 'pull_request' }}
+ id: version
+ run: |
+ $version = (Get-Item "MSUScripter\bin\Release\net9.0\win-x86\publish\MSUScripter.exe").VersionInfo.ProductVersion
+ $version = $version.Split("+")[0]
+ Write-Host $version
+ Write-Output "number=$version" >> $env:GITHUB_OUTPUT
+ shell: pwsh
+ - name: Building the Windows installer
+ if: ${{ github.event_name != 'pull_request' }}
+ run: '"%programfiles(x86)%/Inno Setup 6/iscc.exe" "setup/MSUScripter.iss"'
+ shell: cmd
+ - name: Building the Linux 64bit package
+ if: ${{ github.event_name != 'pull_request' }}
+ working-directory: setup
+ run: "./LinuxBuildZipper.ps1"
+ shell: pwsh
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ if: ${{ github.event_name != 'pull_request' }}
+ with:
+ path: "setup/Output/*"
+ name: MSUScripter_${{ steps.version.outputs.number }}
diff --git a/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/.gitignore b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/.gitignore
new file mode 100644
index 0000000..d8027b8
--- /dev/null
+++ b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/projectSettingsUpdater.xml
+/modules.xml
+/.idea.MSUScripter.iml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/indexLayout.xml b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/vcs.xml b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/MSUScripter/.idea/.idea.MSUScripter.dir/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MSUScripter/MSUScripter.csproj b/MSUScripter/MSUScripter.csproj
index 378d13d..7c0ff0a 100644
--- a/MSUScripter/MSUScripter.csproj
+++ b/MSUScripter/MSUScripter.csproj
@@ -1,7 +1,7 @@
WinExe
- net8.0
+ net9.0
enable
true
app.manifest
@@ -9,30 +9,30 @@
MSUScripterIcon.ico
MSUScripterIcon.ico
4.2.1-beta.1
- 8.0.0
+ 9.0.0
false
12
-
+
-
-
-
+
+
+
-
+
-
+
diff --git a/SchemaGenerator/SchemaGenerator.csproj b/SchemaGenerator/SchemaGenerator.csproj
index 696b164..c06642d 100644
--- a/SchemaGenerator/SchemaGenerator.csproj
+++ b/SchemaGenerator/SchemaGenerator.csproj
@@ -2,7 +2,7 @@
Exe
- net8.0
+ net9.0
enable
enable
diff --git a/Setup/CodeDependencies.iss b/Setup/CodeDependencies.iss
index 0f0cdd2..ec9993b 100644
--- a/Setup/CodeDependencies.iss
+++ b/Setup/CodeDependencies.iss
@@ -1,7 +1,6 @@
-; https://github.com/DomGries/InnoDependencyInstaller
+[Code]
+// https://github.com/DomGries/InnoDependencyInstaller
-
-[Code]
// types and variables
type
TDependency_Entry = record
@@ -17,7 +16,7 @@ type
var
Dependency_Memo: String;
Dependency_List: array of TDependency_Entry;
- Dependency_NeedRestart, Dependency_ForceX86: Boolean;
+ Dependency_NeedToRestart, Dependency_ForceX86: Boolean;
Dependency_DownloadPage: TDownloadWizardPage;
procedure Dependency_Add(const Filename, Parameters, Title, URL, Checksum: String; const ForceSuccess, RestartAfter: Boolean);
@@ -47,13 +46,13 @@ begin
end;
-procedure Dependency_Internal1;
+procedure Dependency_InitializeWizard;
begin
Dependency_DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), nil);
end;
-function Dependency_Internal2(var NeedsRestart: Boolean): String;
+function Dependency_PrepareToInstall(var NeedsRestart: Boolean): String;
var
DependencyCount, DependencyIndex, ResultCode: Integer;
Retry: Boolean;
@@ -102,10 +101,14 @@ begin
while True do begin
ResultCode := 0;
+#ifdef Dependency_CustomExecute
+ if {#Dependency_CustomExecute}(ExpandConstant('{tmp}{\}') + Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Parameters, ResultCode) then begin
+#else
if ShellExec('', ExpandConstant('{tmp}{\}') + Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin
+#endif
if Dependency_List[DependencyIndex].RestartAfter then begin
if DependencyIndex = DependencyCount - 1 then begin
- Dependency_NeedRestart := True;
+ Dependency_NeedToRestart := True;
end else begin
NeedsRestart := True;
Result := Dependency_List[DependencyIndex].Title;
@@ -118,7 +121,7 @@ begin
Result := Dependency_List[DependencyIndex].Title;
break;
end else if ResultCode = 3010 then begin // ERROR_SUCCESS_REBOOT_REQUIRED (3010)
- Dependency_NeedRestart := True;
+ Dependency_NeedToRestart := True;
break;
end;
end;
@@ -152,8 +155,10 @@ begin
end;
end;
+#ifndef Dependency_NoUpdateReadyMemo
-function Dependency_Internal3(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
+#endif
+function Dependency_UpdateReadyMemo(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
begin
Result := '';
if MemoUserInfoInfo <> '' then begin
@@ -184,9 +189,9 @@ begin
end;
-function Dependency_Internal4: Boolean;
+function Dependency_NeedRestart: Boolean;
begin
- Result := Dependency_NeedRestart;
+ Result := Dependency_NeedToRestart;
end;
function Dependency_IsX64: Boolean;
@@ -213,15 +218,34 @@ begin
Result := Dependency_String(' (x86)', ' (x64)');
end;
-function Dependency_IsNetCoreInstalled(const Version: String): Boolean;
+function Dependency_IsNetCoreInstalled(Runtime: String; Major, Minor, Revision: Word): Boolean;
var
+ Path: String;
ResultCode: Integer;
+ Output: TExecOutput;
+ LineIndex: Integer;
+ LineParts: TArrayOfString;
+ PackedVersion: Int64;
+ LineMajor, LineMinor, LineRevision, LineBuild: Word;
begin
- // 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');
+ if not RegQueryStringValue(HKLM32, 'SOFTWARE\dotnet\Setup\InstalledVersions\x' + Dependency_String('86', '64'), 'InstallLocation', Path) or not FileExists(Path + 'dotnet.exe') then begin
+ Path := ExpandConstant(Dependency_String('{commonpf32}', '{commonpf64}')) + '\dotnet\';
+ end;
+ if ExecAndCaptureOutput(Path + 'dotnet.exe', '--list-runtimes', '', SW_HIDE, ewWaitUntilTerminated, ResultCode, Output) and (ResultCode = 0) then begin
+ for LineIndex := 0 to Length(Output.StdOut) - 1 do begin
+ LineParts := StringSplit(Trim(Output.StdOut[LineIndex]), [' '], stExcludeEmpty);
+
+ if (Length(LineParts) > 1) and (Lowercase(LineParts[0]) = Lowercase(Runtime)) and StrToVersion(LineParts[1], PackedVersion) then begin
+ UnpackVersionComponents(PackedVersion, LineMajor, LineMinor, LineRevision, LineBuild);
+
+ if (LineMajor = Major) and (LineMinor = Minor) and (LineRevision >= Revision) then begin
+ Result := True;
+ exit;
+ end;
+ end;
+ end;
end;
- Result := ShellExec('', ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe', Version, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0);
+ Result := False;
end;
procedure Dependency_AddDotNet35;
@@ -285,12 +309,22 @@ begin
end;
procedure Dependency_AddDotNet48;
-var
- Version: Cardinal;
+begin
+ // https://dotnet.microsoft.com/download/dotnet-framework/net48
+ if not IsDotNetInstalled(net48, 0) then begin
+ Dependency_Add('dotnetfx48.exe',
+ '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
+ '.NET Framework 4.8',
+ 'https://go.microsoft.com/fwlink/?LinkId=2085155',
+ '', False, False);
+ end;
+end;
+
+procedure Dependency_AddDotNet481;
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',
+ if not IsDotNetInstalled(net481, 0) then begin
+ Dependency_Add('dotnetfx481.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Framework 4.8.1',
'https://go.microsoft.com/fwlink/?LinkId=2203304',
@@ -301,7 +335,7 @@ end;
procedure Dependency_AddNetCore31;
begin
// https://dotnet.microsoft.com/download/dotnet-core/3.1
- if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 3.1.32') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 3, 1, 32) then begin
Dependency_Add('netcore31' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Core Runtime 3.1.32' + Dependency_ArchTitle,
@@ -313,7 +347,7 @@ end;
procedure Dependency_AddNetCore31Asp;
begin
// https://dotnet.microsoft.com/download/dotnet-core/3.1
- if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 3.1.32') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 3, 1, 32) then begin
Dependency_Add('netcore31asp' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'ASP.NET Core Runtime 3.1.32' + Dependency_ArchTitle,
@@ -325,7 +359,7 @@ end;
procedure Dependency_AddNetCore31Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet-core/3.1
- if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 3.1.32') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 3, 1, 32) then begin
Dependency_Add('netcore31desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Desktop Runtime 3.1.32' + Dependency_ArchTitle,
@@ -337,7 +371,7 @@ end;
procedure Dependency_AddDotNet50;
begin
// https://dotnet.microsoft.com/download/dotnet/5.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 5.0.17') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 5, 0, 17) then begin
Dependency_Add('dotnet50' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Runtime 5.0.17' + Dependency_ArchTitle,
@@ -349,7 +383,7 @@ end;
procedure Dependency_AddDotNet50Asp;
begin
// https://dotnet.microsoft.com/download/dotnet/5.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 5.0.17') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 5, 0, 17) then begin
Dependency_Add('dotnet50asp' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'ASP.NET Core Runtime 5.0.17' + Dependency_ArchTitle,
@@ -361,7 +395,7 @@ end;
procedure Dependency_AddDotNet50Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet/5.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 5.0.17') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 5, 0, 17) then begin
Dependency_Add('dotnet50desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
'.NET Desktop Runtime 5.0.17' + Dependency_ArchTitle,
@@ -373,11 +407,11 @@ end;
procedure Dependency_AddDotNet60;
begin
// https://dotnet.microsoft.com/download/dotnet/6.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 6.0.20') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 6, 0, 36) then begin
Dependency_Add('dotnet60' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- '.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'),
+ '.NET Runtime 6.0.36' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/727d79cb-6a4c-4a6b-bd9e-af99ad62de0b/5cd3550f1589a2f1b3a240c745dd1023/dotnet-runtime-6.0.36-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/1a5fc50a-9222-4f33-8f73-3c78485a55c7/1cb55899b68fcb9d98d206ba56f28b66/dotnet-runtime-6.0.36-win-x64.exe'),
'', False, False);
end;
end;
@@ -385,11 +419,11 @@ end;
procedure Dependency_AddDotNet60Asp;
begin
// https://dotnet.microsoft.com/download/dotnet/6.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 6.0.20') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 6, 0, 36) then begin
Dependency_Add('dotnet60asp' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- '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'),
+ 'ASP.NET Core Runtime 6.0.36' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/8cfa7f46-88f2-4521-a2d8-59b827420344/447de18a48115ac0fe6f381f0528e7a5/aspnetcore-runtime-6.0.36-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/0f0ea01c-ef7c-4493-8960-d1e9269b718b/3f95c5bd383be65c2c3384e9fa984078/aspnetcore-runtime-6.0.36-win-x64.exe'),
'', False, False);
end;
end;
@@ -397,11 +431,11 @@ end;
procedure Dependency_AddDotNet60Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet/6.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 6.0.20') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 6, 0, 36) then begin
Dependency_Add('dotnet60desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- '.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'),
+ '.NET Desktop Runtime 6.0.36' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/cdc314df-4a4c-4709-868d-b974f336f77f/acd5ab7637e456c8a3aa667661324f6d/windowsdesktop-runtime-6.0.36-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/f6b6c5dc-e02d-4738-9559-296e938dabcb/b66d365729359df8e8ea131197715076/windowsdesktop-runtime-6.0.36-win-x64.exe'),
'', False, False);
end;
end;
@@ -409,11 +443,11 @@ 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
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 7, 0, 20) 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'),
+ '.NET Runtime 7.0.20' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b2e820bd-b591-43df-ab10-1eeb7998cc18/661ca79db4934c6247f5c7a809a62238/dotnet-runtime-7.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/be7eaed0-4e32-472b-b53e-b08ac3433a22/fc99a5977c57cbfb93b4afb401953818/dotnet-runtime-7.0.20-win-x64.exe'),
'', False, False);
end;
end;
@@ -421,11 +455,11 @@ 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
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 7, 0, 20) 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'),
+ 'ASP.NET Core Runtime 7.0.20' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/d84ac38e-a248-4c8d-b1fe-4ee092d6b4b1/9f0bf370619ab3da8869e467827a6dc6/aspnetcore-runtime-7.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/10651a65-8afc-46e3-9287-fecb0e68504e/4c2bf0cdb44612f29d9b3f901098e13e/aspnetcore-runtime-7.0.20-win-x64.exe'),
'', False, False);
end;
end;
@@ -433,11 +467,11 @@ 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
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 7, 0, 20) 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'),
+ '.NET Desktop Runtime 7.0.20' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b840017b-c69f-4724-a152-11020a0039e6/b74aa12e4ee765a3387a7dcd4ba56187/windowsdesktop-runtime-7.0.20-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/08bbfe8f-812d-479f-803b-23ea0bffce47/c320e4b037f3e92ab7ea92c3d7ea3ca1/windowsdesktop-runtime-7.0.20-win-x64.exe'),
'', False, False);
end;
end;
@@ -446,11 +480,11 @@ end;
procedure Dependency_AddDotNet80;
begin
// https://dotnet.microsoft.com/download/dotnet/8.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.NETCore.App -v 8.0.0') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 8, 0, 13) then begin
Dependency_Add('dotnet80' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- '.NET Runtime 8.0.0' + Dependency_ArchTitle,
- Dependency_String('https://download.visualstudio.microsoft.com/download/pr/593685c9-7e98-455a-8e34-4b8ad1be9489/6ccf85c6fc244428d61f74ca3aee0645/dotnet-runtime-8.0.0-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/7f4d5cbc-4449-4ea5-9578-c467821f251f/b9b19f89d0642bf78f4b612c6a741637/dotnet-runtime-8.0.0-win-x64.exe'),
+ '.NET Runtime 8.0.13' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/5bac19ad-0711-4eba-a5a3-5e818c5f2fdf/cdec118c18b8457fe4d3ff918f78b4bd/dotnet-runtime-8.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/9c2068f2-dd3e-46cb-a88d-3c2d35b5181f/9ce26210851b0720c5382c6cd056b126/dotnet-runtime-8.0.13-win-x64.exe'),
'', False, False);
end;
end;
@@ -458,11 +492,11 @@ end;
procedure Dependency_AddDotNet80Asp;
begin
// https://dotnet.microsoft.com/download/dotnet/8.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.AspNetCore.App -v 8.0.0') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 8, 0, 13) then begin
Dependency_Add('dotnet80asp' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- 'ASP.NET Core Runtime 8.0.0' + Dependency_ArchTitle,
- Dependency_String('https://download.visualstudio.microsoft.com/download/pr/66ae7d00-596a-4e36-be73-2ebc0c332329/e2f6e37933e204fef5687e338a95b749/aspnetcore-runtime-8.0.0-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/89d3660b-d344-47c5-a1cd-d8343a3f3779/9f55af82923dab7e3dce912f5c5b9d60/aspnetcore-runtime-8.0.0-win-x64.exe'),
+ 'ASP.NET Core Runtime 8.0.13' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b11da59f-561b-466b-bfa8-d2dfc9b5bf48/f8dce6a44fd7be61ff97fe4949e57015/aspnetcore-runtime-8.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/86b8931f-09f6-4fce-b546-8139350da0c4/d6a5f16bcf81e0b5e9a733b892b1240f/aspnetcore-runtime-8.0.13-win-x64.exe'),
'', False, False);
end;
end;
@@ -470,11 +504,47 @@ end;
procedure Dependency_AddDotNet80Desktop;
begin
// https://dotnet.microsoft.com/download/dotnet/8.0
- if not Dependency_IsNetCoreInstalled('-n Microsoft.WindowsDesktop.App -v 8.0.0') then begin
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 8, 0, 13) then begin
Dependency_Add('dotnet80desktop' + Dependency_ArchSuffix + '.exe',
'/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
- '.NET Desktop Runtime 8.0.0' + Dependency_ArchTitle,
- Dependency_String('https://download.visualstudio.microsoft.com/download/pr/f9e3b581-059d-429f-9f0d-1d1167ff7e32/bd7661030cd5d66cd3eee0fd20b24540/windowsdesktop-runtime-8.0.0-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/b280d97f-25a9-4ab7-8a12-8291aa3af117/a37ed0e68f51fcd973e9f6cb4f40b1a7/windowsdesktop-runtime-8.0.0-win-x64.exe'),
+ '.NET Desktop Runtime 8.0.13' + Dependency_ArchTitle,
+ Dependency_String('https://download.visualstudio.microsoft.com/download/pr/b1827c52-ec83-4b3e-8d24-f321276bcdea/812e8d5871111cdc02cc82209c7d45fd/windowsdesktop-runtime-8.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/fc8c9dea-8180-4dad-bf1b-5f229cf47477/c3f0536639ab40f1470b6bad5e1b95b8/windowsdesktop-runtime-8.0.13-win-x64.exe'),
+ '', False, False);
+ end;
+end;
+
+procedure Dependency_AddDotNet90;
+begin
+ // https://dotnet.microsoft.com/download/dotnet/9.0
+ if not Dependency_IsNetCoreInstalled('Microsoft.NETCore.App', 9, 0, 3) then begin
+ Dependency_Add('dotnet90' + Dependency_ArchSuffix + '.exe',
+ '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
+ '.NET Runtime 9.0.3' + Dependency_ArchTitle,
+ Dependency_String('https://builds.dotnet.microsoft.com/dotnet/Runtime/9.0.3/dotnet-runtime-9.0.3-win-x86.exe', 'https://builds.dotnet.microsoft.com/dotnet/Runtime/9.0.3/dotnet-runtime-9.0.3-win-x64.exe'),
+ '', False, False);
+ end;
+end;
+
+procedure Dependency_AddDotNet90Asp;
+begin
+ // https://dotnet.microsoft.com/download/dotnet/9.0
+ if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', 9, 0, 3) then begin
+ Dependency_Add('dotnet90asp' + Dependency_ArchSuffix + '.exe',
+ '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
+ 'ASP.NET Core Runtime 9.0.3' + Dependency_ArchTitle,
+ Dependency_String('https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/9.0.3/aspnetcore-runtime-9.0.3-win-x86.exe', 'https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/9.0.3/aspnetcore-runtime-9.0.3-win-x64.exe'),
+ '', False, False);
+ end;
+end;
+
+procedure Dependency_AddDotNet90Desktop;
+begin
+ // https://dotnet.microsoft.com/download/dotnet/9.0
+ if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', 9, 0, 3) then begin
+ Dependency_Add('dotnet90desktop' + Dependency_ArchSuffix + '.exe',
+ '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart',
+ '.NET Desktop Runtime 9.0.3' + Dependency_ArchTitle,
+ Dependency_String('https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/9.0.3/windowsdesktop-runtime-9.0.3-win-x86.exe', 'https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/9.0.3/windowsdesktop-runtime-9.0.3-win-x64.exe'),
'', False, False);
end;
end;
@@ -542,7 +612,7 @@ end;
procedure Dependency_AddVC2015To2022;
begin
// https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
- if not IsMsiProductInstalled(Dependency_String('{65E5BD06-6392-3027-8C26-853107D3CF1A}', '{36F68A90-239C-34DF-B58C-64B30153CE35}'), PackVersionComponents(14, 30, 30704, 0)) then begin
+ if not IsMsiProductInstalled(Dependency_String('{65E5BD06-6392-3027-8C26-853107D3CF1A}', '{36F68A90-239C-34DF-B58C-64B30153CE35}'), PackVersionComponents(14, 42, 34433, 0)) then begin
Dependency_Add('vcredist2022' + Dependency_ArchSuffix + '.exe',
'/passive /norestart',
'Visual C++ 2015-2022 Redistributable' + Dependency_ArchTitle,
@@ -706,13 +776,6 @@ begin
end;
[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
-
#ifdef Dependency_Path_DirectX
Source: "{#Dependency_Path_DirectX}dxwebsetup.exe"; Flags: dontcopy noencryption
#endif
\ No newline at end of file
diff --git a/Setup/LinuxBuildZipper.ps1 b/Setup/LinuxBuildZipper.ps1
index fa34d89..a351cbc 100644
--- a/Setup/LinuxBuildZipper.ps1
+++ b/Setup/LinuxBuildZipper.ps1
@@ -1,12 +1,12 @@
$parentFolder = Split-Path -parent $PSScriptRoot
# Get publish folder
-$folder = "$parentFolder\MSUScripter\bin\Release\net8.0\linux-x64\publish"
-$winFolder = "$parentFolder\MSUScripter\bin\Release\net8.0-windows\win-x86\publish"
+$folder = "$parentFolder\MSUScripter\bin\Release\net9.0\linux-x64\publish"
+$winFolder = "$parentFolder\MSUScripter\bin\Release\net9.0-windows\win-x86\publish"
if (-not (Test-Path $folder))
{
- $folder = "$parentFolder\MSUScripter\bin\Release\net8.0\publish\linux-x64"
- $winFolder = "$parentFolder\MSUScripter\bin\Release\net8.0-windows\publish\win-x86"
+ $folder = "$parentFolder\MSUScripter\bin\Release\net9.0\publish\linux-x64"
+ $winFolder = "$parentFolder\MSUScripter\bin\Release\net9.0-windows\publish\win-x86"
}
# Get version number from MSUScripter
diff --git a/Setup/MSUScripter.iss b/Setup/MSUScripter.iss
index 11ac7c0..67c94fb 100644
--- a/Setup/MSUScripter.iss
+++ b/Setup/MSUScripter.iss
@@ -7,7 +7,7 @@
#define MyAppPublisher "MattEqualsCoder"
#define MyAppURL "https://github.com/MattEqualsCoder"
#define MyAppExeName "MSUScripter.exe"
-#define MyAppVersion GetStringFileInfo("..\MSUScripter\bin\Release\net8.0\win-x64\publish\" + MyAppExeName, "ProductVersion")
+#define MyAppVersion GetStringFileInfo("..\MSUScripter\bin\Release\net9.0\win-x64\publish\" + MyAppExeName, "ProductVersion")
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
@@ -33,8 +33,8 @@ WizardStyle=modern
[Code]
function InitializeSetup: Boolean;
begin
- Dependency_AddDotNet80Desktop;
- Dependency_AddDotNet80Asp;
+ Dependency_AddDotNet90Desktop;
+ Dependency_AddDotNet90Asp;
Result := True;
end;
@@ -47,8 +47,8 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
[Files]
Source: "netcorecheck.exe"; Flags: dontcopy noencryption
Source: "netcorecheck_x64.exe"; Flags: dontcopy noencryption
-Source: "..\MSUScripter\bin\Release\net8.0\win-x64\publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: Is64BitInstallMode;
-Source: "..\MSUScripter\bin\Release\net8.0\win-x86\publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: "not Is64BitInstallMode";
+Source: "..\MSUScripter\bin\Release\net9.0\win-x64\publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: Is64BitInstallMode;
+Source: "..\MSUScripter\bin\Release\net9.0\win-x86\publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: "not Is64BitInstallMode";
; Source: "..\ConfigRepo\resources\snes\*"; Excludes: "*.txt,*.bps"; DestDir: "{localappdata}\MSUScripter\Configs\snes"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
diff --git a/Setup/create_setup.ps1 b/Setup/create_setup.ps1
index e19219b..1bd10e7 100644
--- a/Setup/create_setup.ps1
+++ b/Setup/create_setup.ps1
@@ -1,6 +1,6 @@
# To run, make sure 7zip and Inno Setup are in your path environment variables
-$pathFromRoot = "MSUScripter\bin\Release\net8.0"
+$pathFromRoot = "MSUScripter\bin\Release\net9.0"
$exe = "MSUScripter.exe"
$timeDifference = 2
@@ -35,9 +35,9 @@ if (Test-Path "$linuxFolder") {
Write-Host "Deleted previous builds"
-dotnet publish --os win --arch x64 -c Release --framework net8.0 --self-contained false ../MSUScripter/MSUScripter.csproj
-dotnet publish --os win --arch x86 -c Release --framework net8.0 --self-contained false ../MSUScripter/MSUScripter.csproj
-dotnet publish --os linux --arch x64 -c Release --framework net8.0 --self-contained false ../MSUScripter/MSUScripter.csproj
+dotnet publish --os win --arch x64 -c Release --framework net9.0 --self-contained false ../MSUScripter/MSUScripter.csproj
+dotnet publish --os win --arch x86 -c Release --framework net9.0 --self-contained false ../MSUScripter/MSUScripter.csproj
+dotnet publish --os linux --arch x64 -c Release --framework net9.0 --self-contained false ../MSUScripter/MSUScripter.csproj
$hasError = $false