Skip to content

Commit cab9e3d

Browse files
authored
Merge pull request #420 from memstechtips/dev
Dev to Main: Winhance WinUI3 Release including bug fixes & new features
2 parents 7b639ea + 23cb77d commit cab9e3d

File tree

568 files changed

+44435
-39152
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

568 files changed

+44435
-39152
lines changed

.github/workflows/create-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ jobs:
144144
with:
145145
draft: true
146146
prerelease: false
147-
name: "Winhance Release #${{ steps.release_number.outputs.next_number }} ${GITHUB_REF#refs/tags/}"
147+
name: "Winhance Release #${{ steps.release_number.outputs.next_number }} ${{ github.ref_name }}"
148148
body: ${{ steps.notes.outputs.BODY }}
149149
generate_release_notes: false
150150
env:

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ GEMINI.md
1111
.plans/
1212
# Custom Prompts
1313
.prompts/
14+
# Agent Skills
15+
.agent/
1416

1517
# User-specific files
1618
*.rsuser

LICENSE.txt

Lines changed: 152 additions & 422 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
**Winhance** features most of the same enhancements as [UnattendedWinstall](https://github.com/memstechtips/UnattendedWinstall) without needing to do a clean install of Windows.
66

7-
<img width="1920" height="1080" alt="Winhance-UI" src="https://github.com/user-attachments/assets/6adedef9-6587-4f29-9bb2-d907965b7a03" />
7+
> [!NOTE]
8+
> Winhance is an independent, open-source project and is **not affiliated with, endorsed by, or associated with Microsoft** in any way. "Windows" is a registered trademark of Microsoft Corporation. Any similarities to Windows Settings or other Microsoft interfaces are a natural result of building a Windows enhancement tool using native Windows UI frameworks.
89
10+
<img width="1920" height="1080" alt="Winhance-UI" src="https://github.com/user-attachments/assets/6adedef9-6587-4f29-9bb2-d907965b7a03" />
911

1012
## Requirements 💻
1113
- Windows 10/11
@@ -47,6 +49,7 @@ It really does make a big difference, and is very much appreciated. Thanks<br>
4749
- Control scripts and scheduled tasks via Windows Apps Help menu
4850
- **External Apps Section**
4951
- Install various useful applications via WinGet
52+
- (WinGet COM API integration based on https://github.com/marticliment/WinGet-API-from-CSharp)
5053
- Categories include Browsers, Multimedia utilities, Document viewers, and more
5154

5255
### Optimize 🚀
@@ -77,17 +80,15 @@ It really does make a big difference, and is very much appreciated. Thanks<br>
7780
- Save settings currently applied in Winhance to a config file for easy importing on a new system or after a fresh Windows install.
7881
- Toggle Winhance's theme (Light/Dark Mode)
7982

83+
## License
84+
85+
Except where otherwise stated (see [THIRD-PARTY-NOTICES.txt](THIRD-PARTY-NOTICES.txt)), the content of this repository is provided under the [PolyForm Shield 1.0.0](https://polyformproject.org/licenses/shield/1.0.0/) license by Marco du Plessis.
86+
87+
**In plain language:** Winhance is free to use for everyone -- individuals, businesses, and IT professionals. You can use it to service and consult for clients. You just can't fork or rebrand it and redistribute it as a competing product. See the full [LICENSE.txt](LICENSE.txt) for details.
88+
8089
## Feedback and Community
8190

8291
If you have feedback, suggestions, or need help with Winhance, please join the discussion on GitHub or our Discord community:
8392

8493
[![Join the Discussion](https://img.shields.io/badge/Join-the%20Discussion-2D9F2D?style=for-the-badge&logo=github&logoColor=white)](https://github.com/memstechtips/Winhance/discussions/183)
8594
[![Join Discord Community](https://img.shields.io/badge/Join-Discord%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://www.discord.gg/zWGANV8QAX)
86-
87-
## Localization 🌐
88-
89-
I used AI (Gemini 2.5 Pro) to generate initial translations for Winhance, so it's available in multiple languages right out of the gate. That said, AI isn't perfect, and there are probably some mistakes or awkward phrasings in there.
90-
91-
If you spot any translation errors or have suggestions to make things sound more natural, I'd love your help! Feel free to open a Pull Request with corrections or create an Issue to let me know what needs fixing. The localization files can be found in the `src/Winhance.WPF/Localization` directory.
92-
93-
Want to see Winhance in a language that's not currently supported? Open an Issue with the "feature request" label and I'll see what I can do!

THIRD-PARTY-NOTICES.txt

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
Winhance uses third-party libraries or other resources that may be
2+
distributed under licenses different from the Winhance software.
3+
4+
=========================================================================
5+
6+
WinGet-API-from-CSharp (WindowsPackageManager.Interop)
7+
https://github.com/marticliment/WinGet-API-from-CSharp
8+
9+
Author: Marti Climent
10+
11+
The WindowsPackageManager Interop code was extracted and modified from
12+
Microsoft Dev Home (https://github.com/microsoft/devhome/).
13+
14+
MIT License
15+
16+
Permission is hereby granted, free of charge, to any person obtaining a copy
17+
of this software and associated documentation files (the "Software"), to deal
18+
in the Software without restriction, including without limitation the rights
19+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20+
copies of the Software, and to permit persons to whom the Software is
21+
furnished to do so, subject to the following conditions:
22+
23+
The above copyright notice and this permission notice shall be included in all
24+
copies or substantial portions of the Software.
25+
26+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32+
SOFTWARE.
33+
34+
=========================================================================
35+
36+
Microsoft Dev Home
37+
https://github.com/microsoft/devhome
38+
39+
Copyright (c) Microsoft Corporation. All rights reserved.
40+
41+
MIT License
42+
43+
Permission is hereby granted, free of charge, to any person obtaining a copy
44+
of this software and associated documentation files (the "Software"), to deal
45+
in the Software without restriction, including without limitation the rights
46+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
47+
copies of the Software, and to permit persons to whom the Software is
48+
furnished to do so, subject to the following conditions:
49+
50+
The above copyright notice and this permission notice shall be included in all
51+
copies or substantial portions of the Software.
52+
53+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
55+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
56+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
57+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
58+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
59+
SOFTWARE.

Winhance.sln

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
Microsoft Visual Studio Solution File, Format Version 12.00
23
# Visual Studio Version 17
34
VisualStudioVersion = 17.5.2.0
@@ -8,34 +9,59 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Winhance.Core", "src\Winhan
89
EndProject
910
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Winhance.Infrastructure", "src\Winhance.Infrastructure\Winhance.Infrastructure.csproj", "{605AD60B-7A44-6C1B-E19E-C5593C889B64}"
1011
EndProject
11-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Winhance.WPF", "src\Winhance.WPF\Winhance.WPF.csproj", "{BF6B3923-2098-84CD-BAAE-2A38AF02FB24}"
12+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Winhance.UI", "src\Winhance.UI\Winhance.UI.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}"
13+
EndProject
14+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsPackageManager.Interop", "src\WindowsPackageManager.Interop\WindowsPackageManager.Interop.csproj", "{83E66269-737B-4ED1-95BB-AF5ED53C462A}"
1215
EndProject
1316
Global
1417
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1518
Debug|Any CPU = Debug|Any CPU
19+
Debug|x64 = Debug|x64
1620
Release|Any CPU = Release|Any CPU
21+
Release|x64 = Release|x64
1722
EndGlobalSection
1823
GlobalSection(ProjectConfigurationPlatforms) = postSolution
1924
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2025
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
26+
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Debug|x64.ActiveCfg = Debug|Any CPU
27+
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Debug|x64.Build.0 = Debug|Any CPU
2128
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
2229
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Release|Any CPU.Build.0 = Release|Any CPU
30+
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Release|x64.ActiveCfg = Release|Any CPU
31+
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7}.Release|x64.Build.0 = Release|Any CPU
2332
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2433
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Debug|Any CPU.Build.0 = Debug|Any CPU
34+
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Debug|x64.ActiveCfg = Debug|Any CPU
35+
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Debug|x64.Build.0 = Debug|Any CPU
2536
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Release|Any CPU.ActiveCfg = Release|Any CPU
2637
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Release|Any CPU.Build.0 = Release|Any CPU
27-
{BF6B3923-2098-84CD-BAAE-2A38AF02FB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28-
{BF6B3923-2098-84CD-BAAE-2A38AF02FB24}.Debug|Any CPU.Build.0 = Debug|Any CPU
29-
{BF6B3923-2098-84CD-BAAE-2A38AF02FB24}.Release|Any CPU.ActiveCfg = Release|Any CPU
30-
{BF6B3923-2098-84CD-BAAE-2A38AF02FB24}.Release|Any CPU.Build.0 = Release|Any CPU
38+
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Release|x64.ActiveCfg = Release|Any CPU
39+
{605AD60B-7A44-6C1B-E19E-C5593C889B64}.Release|x64.Build.0 = Release|Any CPU
40+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|x64
41+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|x64
42+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|x64
43+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|x64
44+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|x64
45+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|x64
46+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|x64
47+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|x64
48+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
49+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Debug|Any CPU.Build.0 = Debug|Any CPU
50+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Debug|x64.ActiveCfg = Debug|Any CPU
51+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Debug|x64.Build.0 = Debug|Any CPU
52+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Release|Any CPU.ActiveCfg = Release|Any CPU
53+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Release|Any CPU.Build.0 = Release|Any CPU
54+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Release|x64.ActiveCfg = Release|Any CPU
55+
{83E66269-737B-4ED1-95BB-AF5ED53C462A}.Release|x64.Build.0 = Release|Any CPU
3156
EndGlobalSection
3257
GlobalSection(SolutionProperties) = preSolution
3358
HideSolutionNode = FALSE
3459
EndGlobalSection
3560
GlobalSection(NestedProjects) = preSolution
3661
{435BD57D-C7D2-BB8F-1732-C2BD8A5319C7} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
3762
{605AD60B-7A44-6C1B-E19E-C5593C889B64} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
38-
{BF6B3923-2098-84CD-BAAE-2A38AF02FB24} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
63+
{A1B2C3D4-E5F6-7890-ABCD-EF1234567890} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
64+
{83E66269-737B-4ED1-95BB-AF5ED53C462A} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
3965
EndGlobalSection
4066
GlobalSection(ExtensibilityGlobals) = postSolution
4167
SolutionGuid = {3ADFA064-2AE8-4C1F-AAC1-8C1CD523119C}

extras/Winhance.Installer.iss

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
#define MyAppPublisher "Marco du Plessis"
77
#define MyAppURL "https://www.winhance.net/"
88
#define MyAppExeName "Winhance.exe"
9-
#define DotNetRuntimeVersion "9.0.10"
9+
#define DotNetRuntimeVersion "10.0.2"
1010
#define DotNetRuntimeInstallerName "windowsdesktop-runtime-" + DotNetRuntimeVersion + "-win-x64.exe"
11+
#define WinAppSdkInstallerName "WindowsAppRuntimeInstall-x64-1.7.exe"
1112
#define MyAppAssocName MyAppName + " File"
1213
#define MyAppAssocExt ".winhance"
1314
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
@@ -42,7 +43,7 @@ LicenseFile=C:\Winhance\LICENSE.txt
4243
PrivilegesRequiredOverridesAllowed=dialog
4344
OutputDir=C:\Winhance\installer-output
4445
OutputBaseFilename=Winhance.Installer
45-
SetupIconFile=C:\Winhance\src\Winhance.WPF\Resources\AppIcons\winhance-rocket.ico
46+
SetupIconFile=C:\Winhance\src\Winhance.UI\Assets\AppIcons\winhance-rocket.ico
4647
SolidCompression=yes
4748
WizardStyle=modern
4849
; Allow user to select installation type
@@ -67,6 +68,16 @@ begin
6768
Result := True; // Always install for regular installation or if checkbox is selected
6869
end;
6970
71+
function ShouldInstallWinAppSdkRuntime: Boolean;
72+
begin
73+
// For regular installation, always install Windows App SDK Runtime
74+
// For portable installation, check if the user wants to install it
75+
if WizardIsTaskSelected('portableinstall') and not WizardIsTaskSelected('portableinstall\winappsdk') then
76+
Result := False
77+
else
78+
Result := True; // Always install for regular installation or if checkbox is selected
79+
end;
80+
7081
function InitializeUninstall(): Boolean;
7182
var
7283
ErrorCode: Integer;
@@ -180,36 +191,20 @@ end;
180191
181192
[Tasks]
182193
Name: "portableinstall"; Description: "Perform a portable installation"; GroupDescription: "Installation type:"; Flags: unchecked exclusive
183-
Name: "portableinstall\dotnetruntime"; Description: "Install .NET 9 Runtime (recommended)"; GroupDescription: "Portable options:"; Flags: unchecked
194+
Name: "portableinstall\dotnetruntime"; Description: "Install .NET 10 Runtime (recommended)"; GroupDescription: "Portable options:"; Flags: unchecked
195+
Name: "portableinstall\winappsdk"; Description: "Install Windows App SDK 1.7 Runtime (recommended)"; GroupDescription: "Portable options:"; Flags: unchecked
184196
Name: "regularinstall"; Description: "Perform a regular installation"; GroupDescription: "Installation type:"; Flags: exclusive
185197
Name: "regularinstall\desktopicon"; Description: "Create a shortcut on the Desktop"; GroupDescription: "Additional shortcuts:"; Flags: unchecked
186198
Name: "regularinstall\startmenuicon"; Description: "Create a shortcut in the Start menu"; GroupDescription: "Additional shortcuts:"; Flags: unchecked
187199

188200
[Files]
189-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
190-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\*.dll"; DestDir: "{app}"; Flags: ignoreversion
191-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\*.json"; DestDir: "{app}"; Flags: ignoreversion
192-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\*.pdb"; DestDir: "{app}"; Flags: ignoreversion
193-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\Localization\*"; DestDir: "{app}\Localization"; Flags: ignoreversion recursesubdirs createallsubdirs
194-
; Copy only necessary Windows x64 runtime files
195-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\runtimes\win\*"; DestDir: "{app}\runtimes\win"; Flags: ignoreversion recursesubdirs createallsubdirs
196-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\runtimes\win-x64\*"; DestDir: "{app}\runtimes\win-x64"; Flags: ignoreversion recursesubdirs createallsubdirs
197-
; Copy language folders for internationalization
198-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\cs\*"; DestDir: "{app}\cs"; Flags: ignoreversion recursesubdirs createallsubdirs
199-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\de\*"; DestDir: "{app}\de"; Flags: ignoreversion recursesubdirs createallsubdirs
200-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\es\*"; DestDir: "{app}\es"; Flags: ignoreversion recursesubdirs createallsubdirs
201-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\fr\*"; DestDir: "{app}\fr"; Flags: ignoreversion recursesubdirs createallsubdirs
202-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\it\*"; DestDir: "{app}\it"; Flags: ignoreversion recursesubdirs createallsubdirs
203-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\ja\*"; DestDir: "{app}\ja"; Flags: ignoreversion recursesubdirs createallsubdirs
204-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\ko\*"; DestDir: "{app}\ko"; Flags: ignoreversion recursesubdirs createallsubdirs
205-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\pl\*"; DestDir: "{app}\pl"; Flags: ignoreversion recursesubdirs createallsubdirs
206-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\pt-BR\*"; DestDir: "{app}\pt-BR"; Flags: ignoreversion recursesubdirs createallsubdirs
207-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\ru\*"; DestDir: "{app}\ru"; Flags: ignoreversion recursesubdirs createallsubdirs
208-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\tr\*"; DestDir: "{app}\tr"; Flags: ignoreversion recursesubdirs createallsubdirs
209-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\zh-Hans\*"; DestDir: "{app}\zh-Hans"; Flags: ignoreversion recursesubdirs createallsubdirs
210-
Source: "C:\Winhance\src\Winhance.WPF\bin\Release\net9.0-windows\win-x64\zh-Hant\*"; DestDir: "{app}\zh-Hant"; Flags: ignoreversion recursesubdirs createallsubdirs
211-
; Include .NET 9 Runtime installer
201+
; All application files and subdirectories (recursive)
202+
; Excludes "nul" - a zero-byte file with a Windows reserved device name created by MSBuild
203+
Source: "C:\Winhance\src\Winhance.UI\bin\x64\Release\net10.0-windows10.0.19041.0\*"; Excludes: "nul"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
204+
; Include .NET 10 Runtime installer
212205
Source: "C:\Winhance\extras\prerequisites\{#DotNetRuntimeInstallerName}"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
206+
; Include Windows App SDK 1.7 Runtime installer
207+
Source: "C:\Winhance\extras\prerequisites\{#WinAppSdkInstallerName}"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
213208
; Create a marker file for portable installations
214209
Source: "C:\Winhance\extras\prerequisites\{#DotNetRuntimeInstallerName}"; DestDir: "{app}"; DestName: "portable.marker"; Flags: ignoreversion; Tasks: portableinstall
215210
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
@@ -228,8 +223,10 @@ Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: r
228223
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: regularinstall\desktopicon
229224

230225
[Run]
231-
; Install .NET 9 Runtime (always for regular installation, optional for portable)
232-
Filename: "{tmp}\{#DotNetRuntimeInstallerName}"; Parameters: "/install /quiet /norestart"; StatusMsg: "Installing .NET 9 Runtime..."; Flags: waituntilterminated; Check: ShouldInstallDotNetRuntime
226+
; Install .NET 10 Runtime (always for regular installation, optional for portable)
227+
Filename: "{tmp}\{#DotNetRuntimeInstallerName}"; Parameters: "/install /quiet /norestart"; StatusMsg: "Installing .NET 10 Runtime..."; Flags: waituntilterminated; Check: ShouldInstallDotNetRuntime
228+
; Install Windows App SDK 1.7 Runtime (always for regular installation, optional for portable)
229+
Filename: "{tmp}\{#WinAppSdkInstallerName}"; Parameters: "--quiet"; StatusMsg: "Installing Windows App SDK Runtime..."; Flags: waituntilterminated runhidden; Check: ShouldInstallWinAppSdkRuntime
233230

234231
; Launch application after installation
235232
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

0 commit comments

Comments
 (0)