diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 1bcce938..1abff9b2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,8 +12,11 @@ on:
 
 jobs:
   build:
+    strategy:
+      matrix:
+        os: [ubuntu-latest, windows-latest, macos-latest]
 
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
 
     steps:
     - uses: actions/checkout@v4
@@ -22,8 +25,6 @@ jobs:
       uses: actions/setup-dotnet@v4
       with:
         dotnet-version: |
-          3.1.x
-          6.0.x
           8.0.x
           9.0.x
 
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index f55370d8..a61384dc 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -30,8 +30,6 @@ jobs:
       uses: actions/setup-dotnet@v4
       with:
         dotnet-version: |
-          3.1.x
-          6.0.x
           8.0.x
           9.0.x
 
@@ -41,7 +39,7 @@ jobs:
       run: dotnet build -c Release --no-restore
 
     - name: Build documentation
-      run: dotnet run -f net8.0 -c Release --no-build
+      run: dotnet run -f net9.0 -c Release --no-build
       working-directory: Docs/SuperLinq.Docs
 
     - name: Setup Pages
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index aeedf237..a88dca03 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -21,8 +21,6 @@ jobs:
       uses: actions/setup-dotnet@v4
       with:
         dotnet-version: |
-          3.1.x
-          6.0.x
           8.0.x
           9.0.x
 
diff --git a/Tests/SuperLinq.Async.Tests/SuperLinq.Async.Tests.csproj b/Tests/SuperLinq.Async.Tests/SuperLinq.Async.Tests.csproj
index 4c1f0ca1..6167f5bb 100644
--- a/Tests/SuperLinq.Async.Tests/SuperLinq.Async.Tests.csproj
+++ b/Tests/SuperLinq.Async.Tests/SuperLinq.Async.Tests.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <TargetFrameworks>net47;net8.0;net9.0</TargetFrameworks>
+    <TargetFrameworks>net8.0;net9.0</TargetFrameworks>
 
     <IsPackable>false</IsPackable>
     <AnalysisLevel>latest-recommended</AnalysisLevel>
@@ -9,6 +9,11 @@
 	<PolySharpExcludeGeneratedTypes>System.Runtime.CompilerServices.ModuleInitializerAttribute</PolySharpExcludeGeneratedTypes>
   </PropertyGroup>
 
+  <PropertyGroup Condition="$([System.OperatingSystem]::IsWindows())">
+	<TargetFrameworks>net47;$(TargetFrameworks)</TargetFrameworks>
+	<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\..\Source\SuperLinq\SuperLinq.csproj" />
     <ProjectReference Include="..\..\Source\SuperLinq.Async\SuperLinq.Async.csproj" />
diff --git a/Tests/SuperLinq.Tests/SuperLinq.Tests.csproj b/Tests/SuperLinq.Tests/SuperLinq.Tests.csproj
index 82c3efcc..2feee3c6 100644
--- a/Tests/SuperLinq.Tests/SuperLinq.Tests.csproj
+++ b/Tests/SuperLinq.Tests/SuperLinq.Tests.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-	<TargetFrameworks>net47;net8.0;net9.0</TargetFrameworks>
+	<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
 
 	<IsPackable>false</IsPackable>
     <AnalysisLevel>latest-recommended</AnalysisLevel>
@@ -9,6 +9,11 @@
 	<PolySharpExcludeGeneratedTypes>System.Runtime.CompilerServices.ModuleInitializerAttribute</PolySharpExcludeGeneratedTypes>
   </PropertyGroup>
 
+  <PropertyGroup Condition="$([System.OperatingSystem]::IsWindows())">
+	<TargetFrameworks>net47;$(TargetFrameworks)</TargetFrameworks>
+	<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
+  </PropertyGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\..\Source\SuperLinq\SuperLinq.csproj" />
   </ItemGroup>