This is an automated email from the ASF dual-hosted git repository.

gkoszyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/master by this push:
     new 16b7d6680 feat(csharp): add .net10  (#2599)
16b7d6680 is described below

commit 16b7d6680632a18651e89834e97ae9d19ee5cea5
Author: Łukasz Zborek <[email protected]>
AuthorDate: Sat Jan 24 14:25:43 2026 +0100

    feat(csharp): add .net10  (#2599)
    
    - add .net10 to multi target build
    - update examples to .net10
    - update tests to use multi target framework (bdd tests runs only on
    .net10)
    - change tests to use Microsoft Testing Platform
    - enable symbol generation and publish with NuGet packages
    - add source link for source debugging
    
    ---------
    
    Co-authored-by: Grzegorz Koszyk 
<[email protected]>
---
 .../actions/csharp-dotnet/post-merge/action.yml    |  2 +-
 .github/actions/csharp-dotnet/pre-merge/action.yml | 13 ++--
 bdd/csharp/Dockerfile                              |  2 +-
 .../Iggy_SDK.Examples.Basic.Consumer.csproj        | 10 ++--
 .../Iggy_SDK.Examples.Basic.Producer.csproj        | 12 ++--
 ...ggy_SDK.Examples.GettingStarted.Consumer.csproj |  6 +-
 ...ggy_SDK.Examples.GettingStarted.Producer.csproj |  6 +-
 .../Iggy_SDK.Examples.Shared.csproj                |  2 +-
 ...gy_SDK.Examples.MessageEnvelope.Consumer.csproj | 12 ++--
 ...gy_SDK.Examples.MessageEnvelope.Producer.csproj | 12 ++--
 ...ggy_SDK.Examples.MessageHeaders.Consumer.csproj |  6 +-
 ...ggy_SDK.Examples.MessageHeaders.Producer.csproj |  6 +-
 .../Iggy_SDK.Examples.NewSdk.Consumer.csproj       | 12 ++--
 .../Iggy_SDK.Examples.NewSdk.Producer.csproj       | 12 ++--
 foreign/csharp/Benchmarks/Benchmarks.csproj        |  2 +-
 foreign/csharp/DEPENDENCIES.md                     | 21 ++++---
 foreign/csharp/Directory.Build.props               | 14 +++++
 foreign/csharp/Directory.Packages.props            | 21 ++++---
 .../Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj   |  7 +--
 .../BasicMessagingOperationsSteps.cs               |  3 +-
 .../Fixtures/IggyServerFixture.cs                  |  3 +-
 .../Iggy_SDK.Tests.Integration.csproj              |  6 +-
 foreign/csharp/Iggy_SDK/Iggy_SDK.csproj            |  8 ++-
 .../csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj    |  9 +--
 .../UtilityTests/EventAggregatorTests.cs           |  4 +-
 .../csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs | 69 ----------------------
 foreign/csharp/Shared/Shared.csproj                |  2 +-
 foreign/csharp/global.json                         |  5 ++
 28 files changed, 117 insertions(+), 170 deletions(-)

diff --git a/.github/actions/csharp-dotnet/post-merge/action.yml 
b/.github/actions/csharp-dotnet/post-merge/action.yml
index 7d9ca5af6..b69333e98 100644
--- a/.github/actions/csharp-dotnet/post-merge/action.yml
+++ b/.github/actions/csharp-dotnet/post-merge/action.yml
@@ -33,7 +33,7 @@ runs:
     - name: Setup .NET
       uses: actions/setup-dotnet@v4
       with:
-        dotnet-version: "8.0.x"
+        dotnet-version: "10.0.x"
 
     - name: Restore dependencies
       run: |
diff --git a/.github/actions/csharp-dotnet/pre-merge/action.yml 
b/.github/actions/csharp-dotnet/pre-merge/action.yml
index b8422b071..962d75a4b 100644
--- a/.github/actions/csharp-dotnet/pre-merge/action.yml
+++ b/.github/actions/csharp-dotnet/pre-merge/action.yml
@@ -30,7 +30,7 @@ runs:
     - name: Setup .NET
       uses: actions/setup-dotnet@v4
       with:
-        dotnet-version: "8.0.x"
+        dotnet-version: "10.0.x"
 
     - name: Setup Rust with cache
       if: inputs.task == 'test' || inputs.task == 'e2e'
@@ -65,9 +65,10 @@ runs:
 
     - name: Test
       if: inputs.task == 'test'
+      working-directory: foreign/csharp
       run: |
         # Run unit tests
-        dotnet test foreign/csharp/Iggy_SDK_Tests --no-build --verbosity normal
+        dotnet test --project Iggy_SDK_Tests --no-build --verbosity normal
 
       shell: bash
 
@@ -82,19 +83,21 @@ runs:
 
     - name: Run integration tests
       if: inputs.task == 'e2e'
+      working-directory: foreign/csharp
       env:
         IGGY_SERVER_DOCKER_IMAGE: ${{ steps.docker_build.outputs.docker_image 
}}
       run: |
-        dotnet test foreign/csharp/Iggy_SDK.Tests.Integration --no-build 
--verbosity normal
+        dotnet test --project Iggy_SDK.Tests.Integration --no-build 
--verbosity normal
       shell: bash
 
     - name: Build Release
       if: inputs.task == 'build'
+      working-directory: foreign/csharp
       run: |
         # Build in Release mode
-        dotnet build foreign/csharp/Iggy_SDK.sln -c Release --no-restore
+        dotnet build Iggy_SDK.sln -c Release --no-restore
 
         # List build output
         echo "Build output:"
-        find . -name "*.dll" -path "*/bin/Release/*" | head -20 || echo "No 
DLLs found in Release folders"
+        find . -name "*.dll" -path "Iggy_SDK/bin/Release/*" | head -20 || echo 
"No DLLs found in Release folders"
       shell: bash
diff --git a/bdd/csharp/Dockerfile b/bdd/csharp/Dockerfile
index 570a86cad..de6ea610e 100644
--- a/bdd/csharp/Dockerfile
+++ b/bdd/csharp/Dockerfile
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM mcr.microsoft.com/dotnet/sdk:8.0
+FROM mcr.microsoft.com/dotnet/sdk:10.0
 
 COPY ./foreign/csharp ./foreign/csharp
 COPY ./bdd/scenarios ./bdd/scenarios
diff --git 
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
 
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
index d02cde821..4b60e15ab 100644
--- 
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
+++ 
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Consumer/Iggy_SDK.Examples.Basic.Consumer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
     <ItemGroup>
         <None Update="appsettings.json">
diff --git 
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
 
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
index beb8b9c32..64342641b 100644
--- 
a/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
+++ 
b/examples/csharp/src/Basic/Iggy_SDK.Examples.Basic.Producer/Iggy_SDK.Examples.Basic.Producer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,11 +11,11 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
     <ItemGroup>
         <None Update="appsettings.json">
diff --git 
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
 
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
index bbb39ca85..d216e933e 100644
--- 
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
+++ 
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Consumer/Iggy_SDK.Examples.GettingStarted.Consumer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
 
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
index ecc1004a8..a97e57117 100644
--- 
a/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
+++ 
b/examples/csharp/src/GettingStarted/Iggy_SDK.Examples.GettingStarted.Producer/Iggy_SDK.Examples.GettingStarted.Producer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" 
Version="8.0.2" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj 
b/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
index c36794630..064ff65b8 100644
--- 
a/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
+++ 
b/examples/csharp/src/Iggy_SDK.Examples.Shared/Iggy_SDK.Examples.Shared.csproj
@@ -1,6 +1,6 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
diff --git 
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
 
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
index 92bdab468..86cbd0bd8 100644
--- 
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
+++ 
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Consumer/Iggy_SDK.Examples.MessageEnvelope.Consumer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
 
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
index 92bdab468..86cbd0bd8 100644
--- 
a/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
+++ 
b/examples/csharp/src/MessageEnvelope/Iggy_SDK.Examples.MessageEnvelope.Producer/Iggy_SDK.Examples.MessageEnvelope.Producer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,10 +11,10 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
 
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
index bbb39ca85..d216e933e 100644
--- 
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
+++ 
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Consumer/Iggy_SDK.Examples.MessageHeaders.Consumer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
 
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
index bbb39ca85..d216e933e 100644
--- 
a/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
+++ 
b/examples/csharp/src/MessageHeaders/Iggy_SDK.Examples.MessageHeaders.Producer/Iggy_SDK.Examples.MessageHeaders.Producer.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <WarningsAsErrors>true</WarningsAsErrors>
@@ -11,7 +11,7 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git 
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
 
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
index b5c34ff99..96f90f615 100644
--- 
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
+++ 
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Consumer/Iggy_SDK.Examples.NewSdk.Consumer.csproj
@@ -2,17 +2,17 @@
 
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 
     <ItemGroup>
diff --git 
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
 
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
index 369228baf..388f1c562 100644
--- 
a/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
+++ 
b/examples/csharp/src/NewSdk/Iggy_SDK.Examples.NewSdk.Producer/Iggy_SDK.Examples.NewSdk.Producer.csproj
@@ -2,7 +2,7 @@
 
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
     </PropertyGroup>
@@ -11,10 +11,10 @@
         <ProjectReference 
Include="..\..\Iggy_SDK.Examples.Shared\Iggy_SDK.Examples.Shared.csproj"/>
     </ItemGroup>
     <ItemGroup>
-        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="8.0.0"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="8.0.2"/>
-        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="8.0.1"/>
-        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="8.0.1" />
-        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1"/>
+        <PackageReference Include="Microsoft.Extensions.Configuration" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Configuration.Json" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging" 
Version="10.0.2" />
+        <PackageReference Include="Microsoft.Extensions.Logging.Console" 
Version="10.0.2" />
     </ItemGroup>
 </Project>
diff --git a/foreign/csharp/Benchmarks/Benchmarks.csproj 
b/foreign/csharp/Benchmarks/Benchmarks.csproj
index d772e827c..457769b67 100644
--- a/foreign/csharp/Benchmarks/Benchmarks.csproj
+++ b/foreign/csharp/Benchmarks/Benchmarks.csproj
@@ -2,7 +2,7 @@
 
     <PropertyGroup>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <AssemblyName>Apache.Iggy.Benchmarks</AssemblyName>
diff --git a/foreign/csharp/DEPENDENCIES.md b/foreign/csharp/DEPENDENCIES.md
index 5e8657912..4ae8d2e34 100644
--- a/foreign/csharp/DEPENDENCIES.md
+++ b/foreign/csharp/DEPENDENCIES.md
@@ -1,18 +1,17 @@
 # Dependencies
 
-BenchmarkDotNet: "0.15.2", "MIT",
-coverlet.collector: "6.0.4", "MIT",
 FluentAssertions: "6.12.0", "Apache-2.0",
-Microsoft.Extensions.Logging: "8.0.1", "MIT",
-Microsoft.Extensions.Logging.Console: "8.0.1", "MIT",
-Microsoft.NET.Test.Sdk: "18.0.0", "MIT",
-Microsoft.Testing.Extensions.CodeCoverage: "18.0.4", "MIT",
-Microsoft.Testing.Extensions.TrxReport: "1.9.0", "MIT",
+Microsoft.Extensions.Logging: "8.0.0", "MIT",
+Microsoft.Extensions.Logging.Console: "8.0.0", "MIT",
+Microsoft.NET.Test.Sdk: "18.0.1", "MIT",
+Microsoft.SourceLink.GitHub: "10.0.102", "MIT",
+Microsoft.Testing.Extensions.CodeCoverage: "18.3.2", "MIT",
+Microsoft.Testing.Extensions.TrxReport: "2.0.2", "MIT",
 Moq: "4.20.72", "BSD-3-Clause",
-Reqnroll.xUnit: "3.2.1", "BSD-3-Clause",
+Reqnroll.xUnit: "3.3.2", "BSD-3-Clause",
 Shouldly: "4.3.0", "BSD-3-Clause",
 System.IO.Hashing: "8.0.0", "MIT",
-Testcontainers: "4.8.1", "MIT",
-TUnit: "0.70.0", "MIT",
-xunit: "2.9.3", "Apache-2.0",
+Testcontainers: "4.10.0", "MIT",
+TUnit: "1.12.15", "MIT",
+xunit.v3.mtp-v2: "3.2.2", "Apache-2.0",
 xunit.runner.visualstudio: "3.1.5", "Apache-2.0",
diff --git a/foreign/csharp/Directory.Build.props 
b/foreign/csharp/Directory.Build.props
new file mode 100644
index 000000000..7bbbc8015
--- /dev/null
+++ b/foreign/csharp/Directory.Build.props
@@ -0,0 +1,14 @@
+<Project>
+  <PropertyGroup>
+    <PublishRepositoryUrl>true</PublishRepositoryUrl>
+    <EmbedUntrackedSources>true</EmbedUntrackedSources>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
+    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SourceLink.GitHub" 
PrivateAssets="All" />
+  </ItemGroup>
+</Project>
diff --git a/foreign/csharp/Directory.Packages.props 
b/foreign/csharp/Directory.Packages.props
index 9ab1be837..d32135b2f 100644
--- a/foreign/csharp/Directory.Packages.props
+++ b/foreign/csharp/Directory.Packages.props
@@ -4,24 +4,23 @@
         
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
     </PropertyGroup>
     <ItemGroup>
-        <PackageVersion Include="BenchmarkDotNet" Version="0.15.2" />
-        <PackageVersion Include="coverlet.collector" Version="6.0.4" />
         <PackageVersion Include="FluentAssertions" Version="6.12.0" />
-        <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.1" 
/>
-        <PackageVersion Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.1" />
-        <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
-        <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" 
Version="18.0.4" />
-        <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" 
Version="1.9.0" />
+        <PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" 
/>
+        <PackageVersion Include="Microsoft.Extensions.Logging.Console" 
Version="8.0.0" />
+        <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
+        <PackageVersion Include="Microsoft.SourceLink.GitHub" 
Version="10.0.102" />
+        <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" 
Version="18.3.2" />
+        <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" 
Version="2.0.2" />
         <PackageVersion Include="Moq" Version="4.20.72" />
-        <PackageVersion Include="Reqnroll.xUnit" Version="3.2.1" />
+        <PackageVersion Include="Reqnroll.xunit.v3" Version="3.3.2" />
         <PackageVersion Include="Shouldly" Version="4.3.0" />
         <PackageVersion Include="System.IO.Hashing" Version="8.0.0" />
-        <PackageVersion Include="Testcontainers" Version="4.8.1" />
-        <PackageVersion Include="TUnit" Version="0.70.0" />
-        <PackageVersion Include="xunit" Version="2.9.3" />
+        <PackageVersion Include="Testcontainers" Version="4.10.0" />
+        <PackageVersion Include="TUnit" Version="1.12.15" />
         <PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5">
             <PrivateAssets>all</PrivateAssets>
             <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
buildtransitive</IncludeAssets>
         </PackageVersion>
+        <PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
     </ItemGroup>
 </Project>
diff --git a/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj 
b/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
index 773e61c32..1c1b2230a 100644
--- a/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
+++ b/foreign/csharp/Iggy_SDK.Tests.BDD/Iggy_SDK.Tests.BDD.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <IsPackable>false</IsPackable>
@@ -18,15 +18,14 @@
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="coverlet.collector" />
         <PackageReference Include="Microsoft.NET.Test.Sdk" />
-        <PackageReference Include="Reqnroll.xUnit" />
+        <PackageReference Include="Reqnroll.xunit.v3" />
         <PackageReference Include="Shouldly" />
-        <PackageReference Include="xunit" />
         <PackageReference Include="xunit.runner.visualstudio">
             <PrivateAssets>all</PrivateAssets>
             <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
buildtransitive</IncludeAssets>
         </PackageReference>
+        <PackageReference Include="xunit.v3.mtp-v2" />
     </ItemGroup>
 
     <ItemGroup>
diff --git 
a/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
 
b/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
index 974397cc8..82bacbba0 100644
--- 
a/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
+++ 
b/foreign/csharp/Iggy_SDK.Tests.BDD/StepDefinitions/BasicMessagingOperationsSteps.cs
@@ -22,11 +22,10 @@ using Apache.Iggy.Enums;
 using Apache.Iggy.Factory;
 using Apache.Iggy.Kinds;
 using Apache.Iggy.Messages;
-using Apache.Iggy.Tests.BDD.Context;
-using Microsoft.Extensions.Logging.Abstractions;
 using Reqnroll;
 using Shouldly;
 using Partitioning = Apache.Iggy.Kinds.Partitioning;
+using TestContext = Apache.Iggy.Tests.BDD.Context.TestContext;
 
 namespace Apache.Iggy.Tests.BDD.StepDefinitions;
 
diff --git 
a/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs 
b/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
index bc81d3087..136d2c22b 100644
--- a/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
+++ b/foreign/csharp/Iggy_SDK.Tests.Integration/Fixtures/IggyServerFixture.cs
@@ -60,8 +60,7 @@ public class IggyServerFixture : IAsyncInitializer, 
IAsyncDisposable
 
     public IggyServerFixture()
     {
-        var builder = new ContainerBuilder()
-            .WithImage(DockerImage)
+        var builder = new ContainerBuilder(DockerImage)
             .WithPortBinding(3000, true)
             .WithPortBinding(8090, true)
             .WithOutputConsumer(Consume.RedirectStdoutAndStderrToConsole())
diff --git 
a/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj 
b/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
index 24b2162d9..9c8b3cf1e 100644
--- 
a/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
+++ 
b/foreign/csharp/Iggy_SDK.Tests.Integration/Iggy_SDK.Tests.Integration.csproj
@@ -4,17 +4,13 @@
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <OutputType>Exe</OutputType>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
         <AssemblyName>Apache.Iggy.Tests.Integrations</AssemblyName>
         <RootNamespace>Apache.Iggy.Tests.Integrations</RootNamespace>
         <IsTestingPlatformApplication>true</IsTestingPlatformApplication>
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="coverlet.collector">
-            <PrivateAssets>all</PrivateAssets>
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
buildtransitive</IncludeAssets>
-        </PackageReference>
         <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" 
/>
         <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
         <PackageReference Include="Shouldly" />
diff --git a/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj 
b/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
index a42832d85..ffc1c58f7 100644
--- a/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
+++ b/foreign/csharp/Iggy_SDK/Iggy_SDK.csproj
@@ -4,7 +4,7 @@
         <PackageId>Apache.Iggy</PackageId>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
         <AssemblyName>Apache.Iggy</AssemblyName>
         <RootNamespace>Apache.Iggy</RootNamespace>
         <PackageVersion>0.6.1-edge.1</PackageVersion>
@@ -16,9 +16,15 @@
         <Authors>Apache Iggy</Authors>
         <IsPackable>true</IsPackable>
         <PackageTags>SDK Iggy Messaging</PackageTags>
+        <RepositoryType>git</RepositoryType>
         <RepositoryUrl>https://github.com/apache/iggy</RepositoryUrl>
+        <PackageProjectUrl>https://github.com/apache/iggy</PackageProjectUrl>
         <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
         <PackageReadmeFile>README.md</PackageReadmeFile>
+
+        <PublishRepositoryUrl>true</PublishRepositoryUrl>
+        <IncludeSymbols>true</IncludeSymbols>
+        <SymbolPackageFormat>snupkg</SymbolPackageFormat>
     </PropertyGroup>
 
     <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
diff --git a/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj 
b/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
index 40cba4638..d54b567c5 100644
--- a/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
+++ b/foreign/csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj
@@ -6,7 +6,7 @@
 
         <IsPackable>false</IsPackable>
         <IsTestProject>true</IsTestProject>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
         <AssemblyName>Apache.Iggy.Tests</AssemblyName>
         <RootNamespace>Apache.Iggy.Tests</RootNamespace>
     </PropertyGroup>
@@ -14,17 +14,14 @@
     <ItemGroup>
         <PackageReference Include="FluentAssertions" />
         <PackageReference Include="Microsoft.NET.Test.Sdk" />
+        <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" 
/>
         <PackageReference Include="Moq" />
         <PackageReference Include="Testcontainers" />
-        <PackageReference Include="xunit" />
         <PackageReference Include="xunit.runner.visualstudio">
             <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
buildtransitive</IncludeAssets>
             <PrivateAssets>all</PrivateAssets>
         </PackageReference>
-        <PackageReference Include="coverlet.collector">
-            <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
buildtransitive</IncludeAssets>
-            <PrivateAssets>all</PrivateAssets>
-        </PackageReference>
+        <PackageReference Include="xunit.v3.mtp-v2" />
     </ItemGroup>
 
     <ItemGroup>
diff --git a/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs 
b/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
index e96add5ee..4279b3872 100644
--- a/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
+++ b/foreign/csharp/Iggy_SDK_Tests/UtilityTests/EventAggregatorTests.cs
@@ -163,12 +163,12 @@ public class EventAggregatorTests
 
         eventAggregator.Publish("test");
 
-        await Task.Delay(200);
+        await Task.Delay(200, TestContext.Current.CancellationToken);
 
         Assert.False(executed);
         Assert.Equal(string.Empty, executedEventValue);
 
-        await Task.Delay(400);
+        await Task.Delay(400, TestContext.Current.CancellationToken);
         Assert.True(executed);
         Assert.Equal("test", executedEventValue);
     }
diff --git a/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs 
b/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs
deleted file mode 100644
index 389d9c6e0..000000000
--- a/foreign/csharp/Iggy_SDK_Tests/Utils/PriorityOrderer.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-using Xunit.Abstractions;
-using Xunit.Sdk;
-
-namespace Apache.Iggy.Tests.Utils;
-
-public class PriorityOrderer : ITestCaseOrderer
-{
-    public IEnumerable<TTestCase> 
OrderTestCases<TTestCase>(IEnumerable<TTestCase> testCases)
-        where TTestCase : ITestCase
-    {
-        var sortedMethods = new SortedDictionary<int, List<TTestCase>>();
-
-        foreach (var testCase in testCases)
-        {
-            var priority = 0;
-
-            foreach (var attr in 
testCase.TestMethod.Method.GetCustomAttributes(typeof(TestPriorityAttribute)
-                         .AssemblyQualifiedName))
-            {
-                priority = attr.GetNamedArgument<int>("Priority");
-            }
-
-            GetOrCreate(sortedMethods, priority).Add(testCase);
-        }
-
-        foreach (List<TTestCase> list in sortedMethods.Keys.Select(priority => 
sortedMethods[priority]))
-        {
-            list.Sort((x, y) =>
-                
StringComparer.OrdinalIgnoreCase.Compare(x.TestMethod.Method.Name, 
y.TestMethod.Method.Name));
-            foreach (var testCase in list)
-            {
-                yield return testCase;
-            }
-        }
-    }
-
-    private static TValue GetOrCreate<TKey, TValue>(IDictionary<TKey, TValue> 
dictionary, TKey key)
-        where TValue : new()
-    {
-        TValue? result;
-
-        if (dictionary.TryGetValue(key, out result))
-        {
-            return result;
-        }
-
-        result = new TValue();
-        dictionary[key] = result;
-
-        return result;
-    }
-}
diff --git a/foreign/csharp/Shared/Shared.csproj 
b/foreign/csharp/Shared/Shared.csproj
index 6f9978f6c..14774ab3f 100644
--- a/foreign/csharp/Shared/Shared.csproj
+++ b/foreign/csharp/Shared/Shared.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>net8.0</TargetFramework>
+        <TargetFrameworks>net8.0;net10.0</TargetFrameworks>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
         <AssemblyName>Apache.Iggy.Shared</AssemblyName>
diff --git a/foreign/csharp/global.json b/foreign/csharp/global.json
new file mode 100644
index 000000000..3140116df
--- /dev/null
+++ b/foreign/csharp/global.json
@@ -0,0 +1,5 @@
+{
+  "test": {
+    "runner": "Microsoft.Testing.Platform"
+  }
+}


Reply via email to