diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ff21958..0baf87a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -17,6 +17,8 @@ jobs:
steps:
- uses: actions/checkout@v7
+ with:
+ fetch-depth: '0'
- name: Setup .NET
uses: actions/setup-dotnet@v6
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7f643f7..3bab96b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -32,6 +32,9 @@ jobs:
dotnet-version: |
11.0.x
+ - name: Restore tools
+ run: dotnet tool restore
+
- name: Restore dependencies
run: dotnet restore
- name: Build
@@ -39,6 +42,8 @@ jobs:
- name: Package
run: dotnet pack -c Release --no-build --property:PackageOutputPath=../../nupkgs
+ - name: Validate Package
+ run: dotnet tool run dotnet-validate -- package local ./nupkgs/*.nupkg
- name: NuGet login (OIDC → temp API key)
uses: NuGet/login@v1
diff --git a/Directory.Build.props b/Directory.Build.props
index 3e106a7..4759723 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,6 +1,6 @@
- net8.0;net9.0;net10.0;net11.0
+ net8.0;net10.0;net11.0
latest
enable
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 8c906e7..5dc7b63 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -26,17 +26,9 @@
-
-
-
-
-
-
-
-
-
+
@@ -51,27 +43,20 @@
-
+
-
+
-
-
-
-
-
-
-
@@ -79,7 +64,7 @@
-
+
diff --git a/src/Immediate.Validations.Analyzers/Immediate.Validations.Analyzers.csproj b/src/Immediate.Validations.Analyzers/Immediate.Validations.Analyzers.csproj
index 284b085..5094536 100644
--- a/src/Immediate.Validations.Analyzers/Immediate.Validations.Analyzers.csproj
+++ b/src/Immediate.Validations.Analyzers/Immediate.Validations.Analyzers.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;net10.0
+ roslyn4.8;roslyn5.0;roslyn5.9
true
true
@@ -15,4 +15,22 @@
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
diff --git a/src/Immediate.Validations.CodeFixes/Immediate.Validations.CodeFixes.csproj b/src/Immediate.Validations.CodeFixes/Immediate.Validations.CodeFixes.csproj
index 002ce67..031b560 100644
--- a/src/Immediate.Validations.CodeFixes/Immediate.Validations.CodeFixes.csproj
+++ b/src/Immediate.Validations.CodeFixes/Immediate.Validations.CodeFixes.csproj
@@ -1,7 +1,7 @@
- netstandard2.0
+ roslyn4.8;roslyn5.0;roslyn5.9
true
true
@@ -17,4 +17,22 @@
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
diff --git a/src/Immediate.Validations.Generators/Immediate.Validations.Generators.csproj b/src/Immediate.Validations.Generators/Immediate.Validations.Generators.csproj
index c89af30..37244e7 100644
--- a/src/Immediate.Validations.Generators/Immediate.Validations.Generators.csproj
+++ b/src/Immediate.Validations.Generators/Immediate.Validations.Generators.csproj
@@ -1,9 +1,10 @@
- netstandard2.0;net10.0
+ roslyn4.8;roslyn5.0;roslyn5.9
true
true
+ $(NoWarn);CA1716
@@ -19,17 +20,48 @@
+
+
+
+
+
+
+
+
+ true
+ $(DefineConstants);SCRIBAN_NO_ASYNC
+
+
+
-
+
$(GetTargetPathDependsOn);GetDependencyTargetPaths
-
+
+
+ .NETStandard
+ v2.0
+ .NETStandard,Version=v2.0
+
+
+
+ .NETCoreApp
+ v10.0
+ .NETCoreApp,Version=v10.0
+
+
+
+ .NETCoreApp
+ v10.0
+ .NETCoreApp,Version=v10.0
+
+
diff --git a/src/Immediate.Validations.Shared/Immediate.Validations.Shared.csproj b/src/Immediate.Validations.Shared/Immediate.Validations.Shared.csproj
index 9d6e377..254b3af 100644
--- a/src/Immediate.Validations.Shared/Immediate.Validations.Shared.csproj
+++ b/src/Immediate.Validations.Shared/Immediate.Validations.Shared.csproj
@@ -1,10 +1,5 @@
-
-
-
-
-
@@ -14,4 +9,20 @@
+
+ roslyn4.8
+ roslyn5.0
+ roslyn5.9
+
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
diff --git a/src/Immediate.Validations/CompatibilitySuppressions.xml b/src/Immediate.Validations/CompatibilitySuppressions.xml
new file mode 100644
index 0000000..855e1b2
--- /dev/null
+++ b/src/Immediate.Validations/CompatibilitySuppressions.xml
@@ -0,0 +1,46 @@
+
+
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.IsExternalInit
+ lib/net10.0/Immediate.Validations.Shared.dll
+ lib/net10.0/Immediate.Validations.Shared.dll
+ true
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.RequiresLocationAttribute
+ lib/net10.0/Immediate.Validations.Shared.dll
+ lib/net10.0/Immediate.Validations.Shared.dll
+ true
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.IsExternalInit
+ lib/net8.0/Immediate.Validations.Shared.dll
+ lib/net8.0/Immediate.Validations.Shared.dll
+ true
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.RequiresLocationAttribute
+ lib/net8.0/Immediate.Validations.Shared.dll
+ lib/net8.0/Immediate.Validations.Shared.dll
+ true
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.IsExternalInit
+ lib/net9.0/Immediate.Validations.Shared.dll
+ lib/net8.0/Immediate.Validations.Shared.dll
+ true
+
+
+ CP0001
+ T:System.Runtime.CompilerServices.RequiresLocationAttribute
+ lib/net9.0/Immediate.Validations.Shared.dll
+ lib/net8.0/Immediate.Validations.Shared.dll
+ true
+
+
\ No newline at end of file
diff --git a/src/Immediate.Validations/Immediate.Validations.csproj b/src/Immediate.Validations/Immediate.Validations.csproj
index 150d1be..99cc726 100644
--- a/src/Immediate.Validations/Immediate.Validations.csproj
+++ b/src/Immediate.Validations/Immediate.Validations.csproj
@@ -3,6 +3,9 @@
true
false
+
+ true
+ 3.0.0
@@ -22,7 +25,7 @@
-
+
-
-
+
-
-
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+ roslyn4.8
+ roslyn5.0
+ roslyn5.9
+
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
diff --git a/tests/Immediate.Validations.FunctionalTests/Immediate.Validations.FunctionalTests.csproj b/tests/Immediate.Validations.FunctionalTests/Immediate.Validations.FunctionalTests.csproj
index 98c429b..83492bf 100644
--- a/tests/Immediate.Validations.FunctionalTests/Immediate.Validations.FunctionalTests.csproj
+++ b/tests/Immediate.Validations.FunctionalTests/Immediate.Validations.FunctionalTests.csproj
@@ -9,13 +9,6 @@
-
-
-
-
-
-
-
@@ -25,27 +18,51 @@
-
- ResXFileCodeGenerator
- Validators.Designer.cs
-
-
- ResXFileCodeGenerator
- Validators.fr-CA.Designer.cs
-
+
+ ResXFileCodeGenerator
+ Validators.Designer.cs
+
+
+ ResXFileCodeGenerator
+ Validators.fr-CA.Designer.cs
+
+
+
+
+
+ True
+ True
+ Validators.resx
+
+
+ True
+ True
+ Validators.fr-CA.resx
+
+
+
+
+
+
+ roslyn4.8
+ roslyn5.0
+ roslyn5.9
+
+
-
- True
- True
- Validators.resx
-
-
- True
- True
- Validators.fr-CA.resx
-
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+ TargetFramework=$(RoslynVersion)
+
diff --git a/tests/Immediate.Validations.FunctionalTests/Resources/Validators.Designer.cs b/tests/Immediate.Validations.FunctionalTests/Resources/Validators.Designer.cs
index d5ff2f6..cdc7a6f 100644
--- a/tests/Immediate.Validations.FunctionalTests/Resources/Validators.Designer.cs
+++ b/tests/Immediate.Validations.FunctionalTests/Resources/Validators.Designer.cs
@@ -19,7 +19,7 @@ namespace Immediate.Validations.FunctionalTests.Resources {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Validators {
diff --git a/tests/Immediate.Validations.Tests/Immediate.Validations.Tests.csproj b/tests/Immediate.Validations.Tests/Immediate.Validations.Tests.csproj
index cb8b933..d000ae2 100644
--- a/tests/Immediate.Validations.Tests/Immediate.Validations.Tests.csproj
+++ b/tests/Immediate.Validations.Tests/Immediate.Validations.Tests.csproj
@@ -3,8 +3,10 @@
Exe
<_SkipUpgradeNetAnalyzersNuGetWarning>true
-
- $(NoWarn);NU1603
+
+
+
+ runtime-async=on
@@ -44,20 +46,38 @@
-
-
-
+
+ roslyn4.8
+ roslyn5.0
+ roslyn5.9
+
+
-
+
+ TargetFramework=$(RoslynVersion)
+
+
-
-
+
+ TargetFramework=$(RoslynVersion)
+
+
-
+
+ TargetFramework=$(RoslynVersion)
+
+
+
+
+
+
+
+
+
+
+