diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0bc8d0bb4..65eaa7271 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -74,3 +74,121 @@ jobs:
- name: Build
run: msbuild "Scripts/nightly.proj" /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU"
+
+ release:
+ runs-on: windows-2022
+ if: github.ref == 'refs/heads/master' && github.event_name == 'push'
+ needs: build
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v5
+
+ # .NET 9 (GA)
+ - name: Setup .NET 9
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 9.0.x
+
+ # .NET 10 (Preview)
+ - name: Setup .NET 10 (preview)
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
+ dotnet-quality: preview
+
+ # global.json dynamisch erzeugen
+ - name: Force .NET 10 SDK via global.json
+ run: |
+ $sdkVersion = (dotnet --list-sdks | Select-String "10.0").ToString().Split(" ")[0]
+ Write-Output "Using SDK $sdkVersion"
+ @"
+ {
+ "sdk": {
+ "version": "$sdkVersion",
+ "rollForward": "latestFeature"
+ }
+ }
+ "@ | Out-File -Encoding utf8 global.json
+
+ - name: Setup MSBuild
+ uses: microsoft/setup-msbuild@v2
+ with:
+ msbuild-architecture: x64
+
+ - name: Setup NuGet
+ uses: NuGet/setup-nuget@v1.2.0
+
+ - name: Cache NuGet
+ uses: actions/cache@v4
+ with:
+ path: ~/.nuget/packages
+ key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
+ restore-keys: |
+ ${{ runner.os }}-nuget-
+
+ - name: Restore
+ run: dotnet restore "Source/Krypton Components/Krypton Toolkit Suite 2022 - VS2022.sln"
+
+ - name: Build Release
+ run: msbuild "Scripts/build.proj" /t:Build /p:Configuration=Release /p:Platform="Any CPU"
+
+ - name: Pack Release
+ run: msbuild "Scripts/build.proj" /t:Pack /p:Configuration=Release /p:Platform="Any CPU"
+
+ - name: Create Release Archives
+ run: msbuild "Scripts/build.proj" /t:CreateAllReleaseArchives /p:Configuration=Release /p:Platform="Any CPU"
+
+ - name: Get Version
+ id: get_version
+ run: |
+ $version = (dotnet build "Source/Krypton Components/Krypton.Toolkit/Krypton.Toolkit.csproj" --no-restore --verbosity quiet | Select-String "Version" | ForEach-Object { $_.Line.Split('=')[1].Trim() })
+ if (-not $version) {
+ $version = "100.25.1.1" # Fallback version
+ }
+ echo "version=$version" >> $env:GITHUB_OUTPUT
+ echo "tag=v$version" >> $env:GITHUB_OUTPUT
+
+ - name: Create Release
+ run: |
+ $releaseBody = @"
+ ## Krypton Toolkit Suite Release ${{ steps.get_version.outputs.version }}
+
+ This release includes:
+ - All Krypton Toolkit components
+ - NuGet packages for multiple target frameworks
+ - Release archives (ZIP and TAR.GZ formats)
+
+ ### Downloads
+ - **ZIP Archive**: `Krypton-Release_*.zip`
+ - **TAR.GZ Archive**: `Krypton-Release_*.tar.gz`
+
+ ### Target Frameworks
+ - .NET Framework 4.7.2
+ - .NET Framework 4.8
+ - .NET Framework 4.8.1
+ - .NET 8.0 Windows
+ - .NET 9.0 Windows
+ - .NET 10.0 Windows
+ "@
+
+ gh release create ${{ steps.get_version.outputs.tag }} `
+ --title "Release ${{ steps.get_version.outputs.version }}" `
+ --notes "$releaseBody" `
+ --latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Upload Release Assets
+ run: |
+ $zipFile = Get-ChildItem "Bin/Release/Zips/Krypton-Release_*.zip" | Select-Object -First 1
+ $tarFile = Get-ChildItem "Bin/Release/Zips/Krypton-Release_*.tar.gz" | Select-Object -First 1
+
+ if ($zipFile) {
+ gh release upload ${{ steps.get_version.outputs.tag }} "$($zipFile.FullName)" --clobber
+ }
+ if ($tarFile) {
+ gh release upload ${{ steps.get_version.outputs.tag }} "$($tarFile.FullName)" --clobber
+ }
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/Documents/Changelog/Changelog.md b/Documents/Changelog/Changelog.md
index 732427446..8b182588b 100644
--- a/Documents/Changelog/Changelog.md
+++ b/Documents/Changelog/Changelog.md
@@ -3,6 +3,7 @@
====
## 2025-11-xx - Build 2511 (V10 - alpha) - November 2025
+* Implemented [#2503](https://github.com/Krypton-Suite/Standard-Toolkit/issues/2503), Add the ability to create zip files for binaries
* Resolved [#2492](https://github.com/Krypton-Suite/Standard-Toolkit/issues/2492), `KryptonForm` does not display '(Administrator)' when elevated
* Resolved [#2502](https://github.com/Krypton-Suite/Standard-Toolkit/issues/2502), **[Breaking Change]** `KryptonCommandLinkButton` updates several properties and their behaviour. See issue for full details.
* Resolved [#2495](https://github.com/Krypton-Suite/Standard-Toolkit/issues/2495), `KryptonProgressBar` private field `_mementoContent` can be null.
diff --git a/Scripts/build.proj b/Scripts/build.proj
index 97ece149d..03c987c0f 100644
--- a/Scripts/build.proj
+++ b/Scripts/build.proj
@@ -1,9 +1,11 @@
-
+
$(MSBuildProjectDirectory)
Release
+ ..\Bin\Release\Zips
+ Krypton-Release
@@ -11,7 +13,7 @@
-
+
@@ -19,14 +21,14 @@
-
+
-
+
@@ -49,7 +51,7 @@
-
+
@@ -65,13 +67,62 @@
-
+
-
+
+
+
+
+ $([System.DateTime]::Now.ToString('yyyyMMdd'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.DateTime]::Now.ToString('yyyyMMdd'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Scripts/canary.proj b/Scripts/canary.proj
index 5a0d908b2..c5790ac3a 100644
--- a/Scripts/canary.proj
+++ b/Scripts/canary.proj
@@ -1,9 +1,11 @@
-
+
$(MSBuildProjectDirectory)
Canary
+ ..\Bin\Canary\Zips
+ Krypton-Canary
@@ -11,7 +13,7 @@
-
+
@@ -19,21 +21,21 @@
-
+
-
+
-
+
@@ -49,9 +51,10 @@
-
-
-
+
+
+
+
@@ -59,17 +62,54 @@
-
+
+
+
+
+ $([System.DateTime]::Now.ToString('yyyyMMdd'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
$([System.DateTime]::Now.ToString('yyyyMMdd'))
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Scripts/nightly.proj b/Scripts/nightly.proj
index 5a3015e3c..0ccbf37ef 100644
--- a/Scripts/nightly.proj
+++ b/Scripts/nightly.proj
@@ -1,9 +1,11 @@
-
+
$(MSBuildProjectDirectory)
Nightly
+ ..\Bin\Nightly\Zips
+ Krypton-Nightly
@@ -11,7 +13,7 @@
-
+
@@ -19,7 +21,7 @@
-
+
@@ -28,14 +30,14 @@
-
+
-
+
@@ -51,9 +53,9 @@
-
+
-
+
@@ -66,12 +68,47 @@
$([System.DateTime]::Now.ToString('yyyyMMdd'))
-
+
-
+
+
+
+
+
+
+
+
+
+ $([System.DateTime]::Now.ToString('yyyyMMdd'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/run.cmd b/run.cmd
index cf31c1ee6..6dff671f7 100644
--- a/run.cmd
+++ b/run.cmd
@@ -1,4 +1,4 @@
-:: Last updated: Wednesday 21st August, 2024 @ 19:00
+:: Last updated: Saturday 16th August, 2025 @ 19:00
@echo off
@@ -6,7 +6,7 @@ title Krypton Toolkit Build System
cls
-@echo Welcome to the Krypton Toolkit Build system, version: 2.4. Please select an option below.
+@echo Welcome to the Krypton Toolkit Build system, version: 3.0. Please select an option below.
echo:
@echo ==============================================================================================
echo:
@@ -16,17 +16,19 @@ echo 3. Create NuGet packages
echo 4. Build and Pack Toolkit
echo 5. Debug project
echo 6. NuGet Tools
-::echo 7. Miscellaneous tasks
-echo 7. End
+echo 7. Create Archives (ZIP/TAR)
+::echo 8. Miscellaneous tasks
+echo 8. End
echo:
-set /p answer="Enter number (1 - 7): "
+set /p answer="Enter number (1 - 8): "
if %answer%==1 (goto cleanproject)
if %answer%==2 (goto buildproject)
if %answer%==3 (goto createnugetpackages)
if %answer%==4 (goto buildandpacktoolkit)
if %answer%==5 (goto debugproject)
if %answer%==6 (goto nugettools)
-if %answer%==7 (goto exitbuildsystem)
+if %answer%==7 (goto createarchives)
+if %answer%==8 (goto exitbuildsystem)
@echo Invalid input, please try again.
@@ -46,8 +48,9 @@ echo 3. Create NuGet packages
echo 4. Build and Pack Toolkit
echo 5. Debug project
echo 6. NuGet Tools
-::echo 7. Miscellaneous tasks
-echo 7. End
+echo 7. Create Archives (ZIP/TAR)
+::echo 8. Miscellaneous tasks
+echo 8. End
echo:
set /p answer="Enter number (1 - 8): "
if %answer%==1 (goto cleanproject)
@@ -56,8 +59,9 @@ if %answer%==3 (goto createnugetpackages)
if %answer%==4 (goto buildandpacktoolkit)
if %answer%==5 (goto debugproject)
if %answer%==6 (goto nugettools)
-::if %answer%==7 (goto miscellaneoustasks)
-if %answer%==7 (goto exitbuildsystem)
+if %answer%==7 (goto createarchives)
+::if %answer%==8 (goto miscellaneoustasks)
+if %answer%==8 (goto exitbuildsystem)
@echo Invalid input, please try again.
@@ -237,7 +241,181 @@ goto packmenu
goto debugmenu
:nugettools
-goto nugettools
+goto createarchives
+
+:createarchives
+cls
+
+echo 1. Create ZIP archive (Nightly)
+echo 2. Create TAR archive (Nightly)
+echo 3. Create both ZIP and TAR archives (Nightly)
+echo 4. Create ZIP archive (Canary)
+echo 5. Create TAR archive (Canary)
+echo 6. Create both ZIP and TAR archives (Canary)
+echo 7. Create ZIP archive (Stable)
+echo 8. Create TAR archive (Stable)
+echo 9. Create both ZIP and TAR archives (Stable)
+echo 10. Update NuGet tools
+echo 11. Go back to main menu
+echo:
+set /p answer="Enter number (1 - 11): "
+if %answer%==1 (goto createzipnightly)
+if %answer%==2 (goto createtarnightly)
+if %answer%==3 (goto createallarchivesnightly)
+if %answer%==4 (goto createzipcanary)
+if %answer%==5 (goto createtarcanary)
+if %answer%==6 (goto createallarchivescanary)
+if %answer%==7 (goto createzipstable)
+if %answer%==8 (goto createtarstable)
+if %answer%==9 (goto createallarchivesstable)
+if %answer%==10 (goto updatenuget)
+if %answer%==11 (goto mainmenu)
+
+@echo Invalid input, please try again.
+
+pause
+
+goto createarchives
+
+:: ===================================================================================================
+
+:updatenuget
+cls
+
+cd Scripts
+
+update-nuget.cmd
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:: ===================================================================================================
+
+:createzipnightly
+cls
+
+cd Scripts
+
+build-nightly.cmd CreateNightlyZip
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createtarnightly
+cls
+
+cd Scripts
+
+build-nightly.cmd CreateNightlyTar
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createallarchivesnightly
+cls
+
+cd Scripts
+
+build-nightly.cmd CreateAllArchives
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:: ===================================================================================================
+
+:createzipcanary
+cls
+
+cd Scripts
+
+build-canary.cmd CreateCanaryZip
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createtarcanary
+cls
+
+cd Scripts
+
+build-canary.cmd CreateCanaryTar
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createallarchivescanary
+cls
+
+cd Scripts
+
+build-canary.cmd CreateAllCanaryArchives
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:: ===================================================================================================
+
+:createzipstable
+cls
+
+cd Scripts
+
+build-stable.cmd CreateReleaseZip
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createtarstable
+cls
+
+cd Scripts
+
+build-stable.cmd CreateReleaseTar
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:createallarchivesstable
+cls
+
+cd Scripts
+
+build-stable.cmd CreateAllReleaseArchives
+
+cd ..
+
+pause
+
+goto mainmenu
+
+:: ===================================================================================================
:buildandpacktoolkit
goto buildandpacktoolkitmenu