From 28a106b16b3ce3ae9d0e1f8b4b533ebdc9553638 Mon Sep 17 00:00:00 2001 From: hazre <37149950+hazre@users.noreply.github.com> Date: Sat, 22 Nov 2025 01:17:03 +0100 Subject: [PATCH 1/5] Upgrade to .NET 10 --- BepInEx.Core/BepInEx.Core.csproj | 6 +++--- .../BepInEx.Preloader.Core.csproj | 4 ++-- Hardware.Info | 2 +- HarmonyX | 2 +- .../BepInEx.NET.Common.csproj | 2 +- .../BepInEx.NET.CoreCLR.csproj | 2 +- Runtimes/NET/BepisLoader/BepisLoader.csproj | 2 +- Runtimes/NET/BepisLoader/LinuxBootstrap.sh | 20 ++++++++++++++----- build/Build.csproj | 4 ++-- build/Program.cs | 12 +++++------ 10 files changed, 33 insertions(+), 23 deletions(-) diff --git a/BepInEx.Core/BepInEx.Core.csproj b/BepInEx.Core/BepInEx.Core.csproj index e9a0d465..d9a4fbb9 100644 --- a/BepInEx.Core/BepInEx.Core.csproj +++ b/BepInEx.Core/BepInEx.Core.csproj @@ -1,7 +1,7 @@  BepInEx Core library - net9.0 + net10.0 true true @@ -12,9 +12,9 @@ - + - + diff --git a/BepInEx.Preloader.Core/BepInEx.Preloader.Core.csproj b/BepInEx.Preloader.Core/BepInEx.Preloader.Core.csproj index c9d97d23..6bd36ab2 100644 --- a/BepInEx.Preloader.Core/BepInEx.Preloader.Core.csproj +++ b/BepInEx.Preloader.Core/BepInEx.Preloader.Core.csproj @@ -1,7 +1,7 @@  Core classes and utilities for BepInEx Preloader - net9.0 + net10.0 @@ -9,6 +9,6 @@ - + diff --git a/Hardware.Info b/Hardware.Info index 3b70583c..b0e99d8c 160000 --- a/Hardware.Info +++ b/Hardware.Info @@ -1 +1 @@ -Subproject commit 3b70583c6f65654bac692cfe26b7920eb6fda000 +Subproject commit b0e99d8c1eb2a5eb1e55efe144d38f47d52ec1c4 diff --git a/HarmonyX b/HarmonyX index 7df1f042..cded4454 160000 --- a/HarmonyX +++ b/HarmonyX @@ -1 +1 @@ -Subproject commit 7df1f0426be9b284f264466db632a00d6d2dc87f +Subproject commit cded445483e468862bd7577656fe4cd887c82bf1 diff --git a/Runtimes/NET/BepInEx.NET.Common/BepInEx.NET.Common.csproj b/Runtimes/NET/BepInEx.NET.Common/BepInEx.NET.Common.csproj index 03536128..a528cb75 100644 --- a/Runtimes/NET/BepInEx.NET.Common/BepInEx.NET.Common.csproj +++ b/Runtimes/NET/BepInEx.NET.Common/BepInEx.NET.Common.csproj @@ -2,7 +2,7 @@ BepInEx common code for .NET-based games - net9.0 + net10.0 diff --git a/Runtimes/NET/BepInEx.NET.CoreCLR/BepInEx.NET.CoreCLR.csproj b/Runtimes/NET/BepInEx.NET.CoreCLR/BepInEx.NET.CoreCLR.csproj index 933052d8..88270669 100644 --- a/Runtimes/NET/BepInEx.NET.CoreCLR/BepInEx.NET.CoreCLR.csproj +++ b/Runtimes/NET/BepInEx.NET.CoreCLR/BepInEx.NET.CoreCLR.csproj @@ -2,7 +2,7 @@ BepInEx support library for CoreCLR games - net9.0 + net10.0 $(BuildDir)/NET.CoreCLR true true diff --git a/Runtimes/NET/BepisLoader/BepisLoader.csproj b/Runtimes/NET/BepisLoader/BepisLoader.csproj index 23cffff2..eec3ab87 100644 --- a/Runtimes/NET/BepisLoader/BepisLoader.csproj +++ b/Runtimes/NET/BepisLoader/BepisLoader.csproj @@ -2,7 +2,7 @@ BepInEx support library for Resonite - net9.0 + net10.0 $(BuildDir)/BepisLoader Exe 1.5.0 diff --git a/Runtimes/NET/BepisLoader/LinuxBootstrap.sh b/Runtimes/NET/BepisLoader/LinuxBootstrap.sh index 569db132..f90de432 100755 --- a/Runtimes/NET/BepisLoader/LinuxBootstrap.sh +++ b/Runtimes/NET/BepisLoader/LinuxBootstrap.sh @@ -58,6 +58,15 @@ RENDERER_SCRIPT="Renderer/Renderite.Renderer.sh" # # "$*" 2>/dev/null # } +# Overload the 'dotnet' command so that it calls the version which was +# downloaded by the script rather than potentially call (or fail to call) +# the system's main dotnet runtime. + +dotnet() +{ + "$DOTNET_EXECUTABLE" "$@" +} + main() { # Make sure the dotnet installer is executable, grab the .NET 9.0 runtime and @@ -72,9 +81,9 @@ main() chmod +x "$RENDERER_SCRIPT" - # Install .NET 9 into the current directory + # Install .NET 10 into the current directory - bash "$DOTNET_INSTALL_SCRIPT" --verbose --channel 9.0 --runtime dotnet --install-dir "$DOTNET_ROOT" + bash "$DOTNET_INSTALL_SCRIPT" --verbose --channel 10.0 --runtime dotnet --install-dir "$DOTNET_ROOT" # Not technically required, but mark dotnet itself as executable just in case. @@ -87,10 +96,10 @@ main() cat > "./BepisLoader.runtimeconfig.json" <<-'EOF' { "runtimeOptions": { - "tfm": "net9.0", + "tfm": "net10.0", "framework": { "name": "Microsoft.NETCore.App", - "version": "9.0.0" + "version": "10.0.0" }, "configProperties": { "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, @@ -150,7 +159,8 @@ main() echo "Entry point: $ENTRY_POINT" # ~ Launch Resonite! :) ~ - exec "$DOTNET_EXECUTABLE" "$ENTRY_POINT" "$@" + + dotnet "$ENTRY_POINT" "$@" } main "$@" diff --git a/build/Build.csproj b/build/Build.csproj index ddafb3c3..6fb453e2 100644 --- a/build/Build.csproj +++ b/build/Build.csproj @@ -1,7 +1,7 @@ Exe - net9.0 + net10.0 $(MSBuildProjectDirectory) false @@ -10,7 +10,7 @@ - + diff --git a/build/Program.cs b/build/Program.cs index 21f51bcb..8ef6811c 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -62,8 +62,8 @@ public enum ProjectBuildType //new("NET.Framework", "win-x86", "net452"), //new("NET.CoreCLR", "win-x64", "netcoreapp3.1"), //new("NET.CoreCLR", "win-x64", "net9.0"), - new("NET", "BepisLoader", "win-x64", "net9.0"), - // new("NET", "BepisLoader", "linux-x64", "net9.0") + new("NET", "BepisLoader", "win-x64", "net10.0"), + // new("NET", "BepisLoader", "linux-x64", "net10.0") }; @@ -418,7 +418,7 @@ public override void Run(BuildContext ctx) ctx.Log.Warning("LinuxBootstrap.sh not found at: " + linuxBootstrapPath); } - var netCoreCLRSource = ctx.OutputDirectory.Combine("NET.CoreCLR").Combine("net9.0"); + var netCoreCLRSource = ctx.OutputDirectory.Combine("NET.CoreCLR").Combine("net10.0"); if (ctx.DirectoryExists(netCoreCLRSource)) { // Create BepInEx directories only if we have files to copy @@ -474,15 +474,15 @@ public override void Run(BuildContext ctx) var runtimeConfig = """ { "runtimeOptions": { - "tfm": "net9.0", + "tfm": "net10.0", "frameworks": [ { "name": "Microsoft.NETCore.App", - "version": "9.0.0" + "version": "10.0.0" }, { "name": "Microsoft.WindowsDesktop.App", - "version": "9.0.0" + "version": "10.0.0" } ], "configProperties": { From e59b2aafc0799d643a3f371e4f34a6b2b1ed01a2 Mon Sep 17 00:00:00 2001 From: hazre <37149950+hazre@users.noreply.github.com> Date: Sat, 22 Nov 2025 22:12:04 +0100 Subject: [PATCH 2/5] refactor(LinuxBootstrap): revert to without dotnet function --- Runtimes/NET/BepisLoader/LinuxBootstrap.sh | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Runtimes/NET/BepisLoader/LinuxBootstrap.sh b/Runtimes/NET/BepisLoader/LinuxBootstrap.sh index f90de432..8cb9fe2b 100755 --- a/Runtimes/NET/BepisLoader/LinuxBootstrap.sh +++ b/Runtimes/NET/BepisLoader/LinuxBootstrap.sh @@ -58,15 +58,6 @@ RENDERER_SCRIPT="Renderer/Renderite.Renderer.sh" # # "$*" 2>/dev/null # } -# Overload the 'dotnet' command so that it calls the version which was -# downloaded by the script rather than potentially call (or fail to call) -# the system's main dotnet runtime. - -dotnet() -{ - "$DOTNET_EXECUTABLE" "$@" -} - main() { # Make sure the dotnet installer is executable, grab the .NET 9.0 runtime and @@ -160,7 +151,7 @@ main() # ~ Launch Resonite! :) ~ - dotnet "$ENTRY_POINT" "$@" + exec "$DOTNET_EXECUTABLE" "$ENTRY_POINT" "$@" } main "$@" From c623b61cb68060411613a2b3e942cf134fe68f0d Mon Sep 17 00:00:00 2001 From: hazre <37149950+hazre@users.noreply.github.com> Date: Sat, 22 Nov 2025 22:30:45 +0100 Subject: [PATCH 3/5] chore(workflows): Upgrade to .NET 10 --- .github/workflows/build.yml | 2 +- .github/workflows/build_pr.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d2cfa5f..a69a7f33 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,7 +37,7 @@ jobs: workflow-id: build.yml - uses: actions/setup-dotnet@v4 with: - dotnet-version: "9.0.x" + dotnet-version: "10.0.x" - name: Build run: | ./build.sh --target Publish --build-type ${{ steps.info.outputs.build_type }} --build-id ${{ steps.info.outputs.build_id }} --last-build-commit \"${{ steps.setSHAs.outputs.base }}\" --nuget-api-key \"${{ secrets.NUGET_API_KEY }}\" --nuget-source https://nuget-modding.resonite.net/v3/index.json diff --git a/.github/workflows/build_pr.yml b/.github/workflows/build_pr.yml index ea612988..9aef8246 100644 --- a/.github/workflows/build_pr.yml +++ b/.github/workflows/build_pr.yml @@ -14,7 +14,7 @@ jobs: submodules: 'true' - uses: actions/setup-dotnet@v4 with: - dotnet-version: "9.0.x" + dotnet-version: "10.0.x" - name: Build run: | ./build.sh --target Publish diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 244b8bb3..9fc7a58e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -28,7 +28,7 @@ jobs: core.setOutput("build_id", context.runNumber); - uses: actions/setup-dotnet@v4 with: - dotnet-version: "9.0.x" + dotnet-version: "10.0.x" - name: Install dotnet Tools run: dotnet tool restore - name: Build with Cake diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 99e1dbb3..2987017c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: core.setOutput("build_id", context.runNumber); - uses: actions/setup-dotnet@v4 with: - dotnet-version: "9.0.x" + dotnet-version: "10.0.x" - name: Build run: | ./build.sh --target Publish --build-type Release --build-id ${{ steps.info.outputs.build_id }} --nuget-api-key "${{ secrets.NUGET_API_KEY }}" --nuget-source https://nuget-modding.resonite.net/v3/index.json From 190d7493646cf35e025b40708bfc7c552a28c806 Mon Sep 17 00:00:00 2001 From: hazre <37149950+hazre@users.noreply.github.com> Date: Sat, 22 Nov 2025 22:35:04 +0100 Subject: [PATCH 4/5] fix(workflows): attempt to fix artifacts not being found --- .github/workflows/build.yml | 6 +++--- .github/workflows/build_pr.yml | 4 ++-- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a69a7f33..4f556373 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: BEPISBUILDS_HOST: ${{ secrets.BEPISBUILDS_HOST }} if: ${{ steps.info.outputs.build_type == 'BleedingEdge' && env.BEPISBUILDS_HOST != null }} run: | - artifacts_list=$(find ./bin/dist -maxdepth 1 -type f | tr '\n' ','); artifacts_list=${artifacts_list::-1}; + artifacts_list=$(find ${{ github.workspace }}/bin/dist -maxdepth 1 -type f | tr '\n' ','); artifacts_list=${artifacts_list::-1}; curl --upload-file "{${artifacts_list}}" --ftp-pasv --ftp-skip-pasv-ip --ftp-create-dirs --ftp-method singlecwd --disable-epsv "ftp://${{ secrets.BEPISBUILDS_AUTH }}@${{ secrets.BEPISBUILDS_HOST }}:${{ secrets.BEPISBUILDS_PORT }}/bepinex_be/artifacts/${{ steps.info.outputs.build_id }}/" - name: Generate changelog id: generate_changelog @@ -77,6 +77,6 @@ jobs: with: name: "BepInEx_CI_${{ steps.info.outputs.build_type }}_${{ steps.info.outputs.sha_short }}_${{ steps.info.outputs.build_id || 0 }}" path: | - "./bin/dist/*.zip" - "./bin/dist/thunderstore-package/*.zip" + ${{ github.workspace }}/bin/dist/*.zip + ${{ github.workspace }}/bin/dist/thunderstore-package/*.zip diff --git a/.github/workflows/build_pr.yml b/.github/workflows/build_pr.yml index 9aef8246..10faf99d 100644 --- a/.github/workflows/build_pr.yml +++ b/.github/workflows/build_pr.yml @@ -23,5 +23,5 @@ jobs: with: name: "BepInEx_CI" path: | - "./bin/dist/*.zip" - "./bin/dist/thunderstore-package/*.zip" + ${{ github.workspace }}/bin/dist/*.zip + ${{ github.workspace }}/bin/dist/thunderstore-package/*.zip diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9fc7a58e..b366b4f2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,7 +35,7 @@ jobs: run: ./build.sh --target Publish --build-type ${{ steps.info.outputs.build_type }} --build-id ${{ steps.info.outputs.build_id }} --last-build-commit \"${{ steps.setSHAs.outputs.base }}\" - name: Publish to Thunderstore run: | - ZIP_FILE=$(ls ./bin/dist/thunderstore-package/*.zip | head -1) + ZIP_FILE=$(ls ${{ github.workspace }}/bin/dist/thunderstore-package/*.zip | head -1) dotnet tcli publish --file "$ZIP_FILE" --config-path Runtimes/NET/BepisLoader/thunderstore.toml env: TCLI_AUTH_TOKEN: ${{ secrets.TCLI_AUTH_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2987017c..6ed2cd9e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,5 +39,5 @@ jobs: with: name: "BepInEx_Release_${{ steps.info.outputs.sha_short }}_${{ steps.info.outputs.build_id || 0 }}" path: | - "./bin/dist/*.zip" - "./bin/dist/thunderstore-package/*.zip" + ${{ github.workspace }}/bin/dist/*.zip + ${{ github.workspace }}/bin/dist/thunderstore-package/*.zip From 944f02e02073de58dd1ced44031582b69798aa7a Mon Sep 17 00:00:00 2001 From: hazre <37149950+hazre@users.noreply.github.com> Date: Mon, 24 Nov 2025 23:43:26 +0100 Subject: [PATCH 5/5] chore(BepisLoader): update version to 1.5.1 --- Runtimes/NET/BepisLoader/BepisLoader.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Runtimes/NET/BepisLoader/BepisLoader.csproj b/Runtimes/NET/BepisLoader/BepisLoader.csproj index eec3ab87..a2617df8 100644 --- a/Runtimes/NET/BepisLoader/BepisLoader.csproj +++ b/Runtimes/NET/BepisLoader/BepisLoader.csproj @@ -5,7 +5,7 @@ net10.0 $(BuildDir)/BepisLoader Exe - 1.5.0 + 1.5.1 enable enable false