diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index d690d43..79fba3a 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - dotnet-version: ['8.0.x'] + dotnet-version: ['9.0.x'] steps: - name: Setup .NET ${{ matrix.dotnet-version }} uses: actions/setup-dotnet@v4 diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 7438232..15e9b01 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -1,19 +1,49 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/build", - "title": "Build Schema", "definitions": { - "build": { - "type": "object", + "Host": { + "type": "string", + "enum": [ + "AppVeyor", + "AzurePipelines", + "Bamboo", + "Bitbucket", + "Bitrise", + "GitHubActions", + "GitLab", + "Jenkins", + "Rider", + "SpaceAutomation", + "TeamCity", + "Terminal", + "TravisCI", + "VisualStudio", + "VSCode" + ] + }, + "ExecutableTarget": { + "type": "string", + "enum": [ + "Clean", + "CleanAndBuild", + "Compile", + "Pack", + "Push", + "Restore" + ] + }, + "Verbosity": { + "type": "string", + "description": "", + "enum": [ + "Verbose", + "Normal", + "Minimal", + "Quiet" + ] + }, + "NukeBuild": { "properties": { - "Configuration": { - "type": "string", - "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", - "enum": [ - "Debug", - "Release" - ] - }, "Continue": { "type": "boolean", "description": "Indicates to continue a previously failed build attempt" @@ -23,53 +53,13 @@ "description": "Shows the help text for this build assembly" }, "Host": { - "type": "string", "description": "Host for execution. Default is 'automatic'", - "enum": [ - "AppVeyor", - "AzurePipelines", - "Bamboo", - "Bitbucket", - "Bitrise", - "GitHubActions", - "GitLab", - "Jenkins", - "Rider", - "SpaceAutomation", - "TeamCity", - "Terminal", - "TravisCI", - "VisualStudio", - "VSCode" - ] - }, - "IgnoreFailedSources": { - "type": "boolean" - }, - "LocalPack": { - "type": "boolean" - }, - "LocalPackDenyRelease": { - "type": "boolean" + "$ref": "#/definitions/Host" }, "NoLogo": { "type": "boolean", "description": "Disables displaying the NUKE logo" }, - "NUGET_API_KEY": { - "type": "string", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" - }, - "NUGET_URL": { - "type": "string" - }, - "PACKAGES_GITHUB_NUGET_PAT": { - "type": "string", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" - }, - "PACKAGES_GITHUB_NUGET_URL": { - "type": "string" - }, "Partition": { "type": "string", "description": "Partition to use on CI" @@ -85,9 +75,6 @@ "type": "string" } }, - "RELEASE_NOTES": { - "type": "string" - }, "Root": { "type": "string", "description": "Root directory during build execution" @@ -96,47 +83,68 @@ "type": "array", "description": "List of targets to be skipped. Empty list skips all dependencies", "items": { - "type": "string", - "enum": [ - "Clean", - "CleanAndBuild", - "Compile", - "Pack", - "Push", - "Restore" - ] + "$ref": "#/definitions/ExecutableTarget" } }, - "Solution": { - "type": "string", - "description": "Path to a solution file that is automatically loaded" - }, "Target": { "type": "array", "description": "List of targets to be invoked. Default is '{default_target}'", "items": { - "type": "string", - "enum": [ - "Clean", - "CleanAndBuild", - "Compile", - "Pack", - "Push", - "Restore" - ] + "$ref": "#/definitions/ExecutableTarget" } }, "Verbosity": { - "type": "string", "description": "Logging verbosity during build execution. Default is 'Normal'", + "$ref": "#/definitions/Verbosity" + } + } + } + }, + "allOf": [ + { + "properties": { + "Configuration": { + "type": "string", + "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", "enum": [ - "Minimal", - "Normal", - "Quiet", - "Verbose" + "Debug", + "Release" ] + }, + "IgnoreFailedSources": { + "type": "boolean" + }, + "LocalPack": { + "type": "boolean" + }, + "LocalPackDenyRelease": { + "type": "boolean" + }, + "NUGET_API_KEY": { + "type": "string", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "NUGET_URL": { + "type": "string" + }, + "PACKAGES_GITHUB_NUGET_PAT": { + "type": "string", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "PACKAGES_GITHUB_NUGET_URL": { + "type": "string" + }, + "RELEASE_NOTES": { + "type": "string" + }, + "Solution": { + "type": "string", + "description": "Path to a solution file that is automatically loaded" } } + }, + { + "$ref": "#/definitions/NukeBuild" } - } + ] } diff --git a/build/_build.csproj b/build/_build.csproj index b7ce25b..56d195b 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 .. @@ -12,7 +12,7 @@ - + diff --git a/src/WinFormsMVP.NET.Autofac/WinFormsMVP.NET.Autofac.csproj b/src/WinFormsMVP.NET.Autofac/WinFormsMVP.NET.Autofac.csproj index 13b28c3..dd4b36d 100644 --- a/src/WinFormsMVP.NET.Autofac/WinFormsMVP.NET.Autofac.csproj +++ b/src/WinFormsMVP.NET.Autofac/WinFormsMVP.NET.Autofac.csproj @@ -1,7 +1,7 @@  - net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows + net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true true False @@ -35,6 +35,10 @@ + + + + diff --git a/src/WinFormsMVP.NET.SimpleInjector/WinFormsMVP.NET.SimpleInjector.csproj b/src/WinFormsMVP.NET.SimpleInjector/WinFormsMVP.NET.SimpleInjector.csproj index 8e78e44..c163bf8 100644 --- a/src/WinFormsMVP.NET.SimpleInjector/WinFormsMVP.NET.SimpleInjector.csproj +++ b/src/WinFormsMVP.NET.SimpleInjector/WinFormsMVP.NET.SimpleInjector.csproj @@ -1,7 +1,7 @@  - net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows + net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true true False @@ -35,6 +35,10 @@ + + + + diff --git a/src/WinFormsMVP.NET/Forms/MvpUserControl.cs b/src/WinFormsMVP.NET/Forms/MvpUserControl.cs index 282131c..22abbbc 100644 --- a/src/WinFormsMVP.NET/Forms/MvpUserControl.cs +++ b/src/WinFormsMVP.NET/Forms/MvpUserControl.cs @@ -1,4 +1,5 @@ -using System.Windows.Forms; +using System.ComponentModel; +using System.Windows.Forms; using WinFormsMVP.NET.Binder; namespace WinFormsMVP.NET.Forms @@ -14,6 +15,9 @@ public MvpUserControl() _presenterBinder.PerformBinding(this); } +#if NET9_0_OR_GREATER + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] +#endif public bool ThrowExceptionIfNoPresenterBound { get; private set; } } } diff --git a/src/WinFormsMVP.NET/WinFormsMVP.NET.csproj b/src/WinFormsMVP.NET/WinFormsMVP.NET.csproj index c500373..39a6193 100644 --- a/src/WinFormsMVP.NET/WinFormsMVP.NET.csproj +++ b/src/WinFormsMVP.NET/WinFormsMVP.NET.csproj @@ -1,7 +1,7 @@  - net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows + net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows true true False @@ -39,6 +39,11 @@ + + + + +