diff --git a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
index 9ad2c5b..6610976 100644
--- a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
+++ b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
@@ -29,7 +29,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="BenchmarkDotNet" Version="0.15.2" />
+    <PackageReference Include="BenchmarkDotNet" Version="0.15.6" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj
index 3f267e7..73e1728 100644
--- a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj
+++ b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net10/Thrift.Compile.net10.csproj
@@ -38,7 +38,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />
+    <PackageReference Include="System.ServiceModel.Primitives" Version="10.0.652802" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/lib/netstd/Tests/Thrift.IntegrationTests/Protocols/ProtocolsOperationsTests.cs b/lib/netstd/Tests/Thrift.IntegrationTests/Protocols/ProtocolsOperationsTests.cs
index 844bd10..b1ee0df 100644
--- a/lib/netstd/Tests/Thrift.IntegrationTests/Protocols/ProtocolsOperationsTests.cs
+++ b/lib/netstd/Tests/Thrift.IntegrationTests/Protocols/ProtocolsOperationsTests.cs
@@ -33,7 +33,7 @@
     [TestClass]
     public class ProtocolsOperationsTests : TestBase
     {
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol), TMessageType.Call)]
         [DataRow(typeof(TBinaryProtocol), TMessageType.Exception)]
         [DataRow(typeof(TBinaryProtocol), TMessageType.Oneway)]
@@ -76,78 +76,82 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
-        [ExpectedException(typeof(Exception))]
         public async Task WriteReadStruct_Test(Type protocolType)
         {
             var expected = new TStruct(nameof(TStruct));
 
-            try
+            await Assert.ThrowsAsync<Exception>(async () =>
             {
-                var tuple = GetProtocolInstance(protocolType);
-                using (var stream = tuple.Stream)
+                try
                 {
-                    var protocol = tuple.Protocol;
+                    var tuple = GetProtocolInstance(protocolType);
+                    using (var stream = tuple.Stream)
+                    {
+                        var protocol = tuple.Protocol;
 
-                    await protocol.WriteStructBeginAsync(expected, default);
-                    await protocol.WriteStructEndAsync(default);
-                    await tuple.Transport.FlushAsync(default);
+                        await protocol.WriteStructBeginAsync(expected, default);
+                        await protocol.WriteStructEndAsync(default);
+                        await tuple.Transport.FlushAsync(default);
 
-                    stream.Seek(0, SeekOrigin.Begin);
+                        stream.Seek(0, SeekOrigin.Begin);
 
-                    var actual = await protocol.ReadStructBeginAsync(default);
-                    await protocol.ReadStructEndAsync(default);
+                        var actual = await protocol.ReadStructBeginAsync(default);
+                        await protocol.ReadStructEndAsync(default);
 
-                    var result = _compareLogic.Compare(expected, actual);
-                    Assert.IsTrue(result.AreEqual, result.DifferencesString);
+                        var result = _compareLogic.Compare(expected, actual);
+                        Assert.IsTrue(result.AreEqual, result.DifferencesString);
+                    }
+
                 }
-
-            }
-            catch (Exception e)
-            {
-                throw new Exception($"Exception during testing of protocol: {protocolType.FullName}", e);
-            }
+                catch (Exception e)
+                {
+                    throw new Exception($"Exception during testing of protocol: {protocolType.FullName}", e);
+                }
+            });
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
-        [ExpectedException(typeof(Exception))]
         public async Task WriteReadField_Test(Type protocolType)
         {
             var expected = new TField(nameof(TField), TType.String, 1);
 
-            try
+            await Assert.ThrowsAsync<Exception>(async() =>
             {
-                var tuple = GetProtocolInstance(protocolType);
-                using (var stream = tuple.Stream)
+                try
                 {
-                    var protocol = tuple.Protocol;
+                    var tuple = GetProtocolInstance(protocolType);
+                    using (var stream = tuple.Stream)
+                    {
+                        var protocol = tuple.Protocol;
 
-                    await protocol.WriteFieldBeginAsync(expected, default);
-                    await protocol.WriteFieldEndAsync(default);
-                    await tuple.Transport.FlushAsync(default);
+                        await protocol.WriteFieldBeginAsync(expected, default);
+                        await protocol.WriteFieldEndAsync(default);
+                        await tuple.Transport.FlushAsync(default);
 
-                    stream.Seek(0, SeekOrigin.Begin);
+                        stream.Seek(0, SeekOrigin.Begin);
 
-                    var actual = await protocol.ReadFieldBeginAsync(default);
-                    await protocol.ReadFieldEndAsync(default);
+                        var actual = await protocol.ReadFieldBeginAsync(default);
+                        await protocol.ReadFieldEndAsync(default);
 
-                    var result = _compareLogic.Compare(expected, actual);
-                    Assert.IsTrue(result.AreEqual, result.DifferencesString);
+                        var result = _compareLogic.Compare(expected, actual);
+                        Assert.IsTrue(result.AreEqual, result.DifferencesString);
+                    }
                 }
-            }
-            catch (Exception e)
-            {
-                throw new Exception($"Exception during testing of protocol: {protocolType.FullName}", e);
-            }
+                catch (Exception e)
+                {
+                    throw new Exception($"Exception during testing of protocol: {protocolType.FullName}", e);
+                }
+            });
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -182,7 +186,7 @@
 
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -216,7 +220,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -250,7 +254,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -282,7 +286,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -314,7 +318,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -346,7 +350,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -378,7 +382,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -410,7 +414,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -442,7 +446,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -474,7 +478,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
@@ -506,7 +510,7 @@
             }
         }
 
-        [DataTestMethod]
+        [TestMethod]
         [DataRow(typeof(TBinaryProtocol))]
         [DataRow(typeof(TCompactProtocol))]
         [DataRow(typeof(TJsonProtocol))]
diff --git a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
index 96e5076..07e1d55 100644
--- a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
+++ b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
@@ -35,11 +35,11 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="CompareNETObjects" Version="4.83.0" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
-    <PackageReference Include="MSTest.TestAdapter" Version="3.9.3" />
-    <PackageReference Include="MSTest.TestFramework" Version="3.9.3" />
-    <PackageReference Include="System.ServiceModel.Primitives" Version="8.1.2" />
+    <PackageReference Include="CompareNETObjects" Version="4.84.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
+    <PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
+    <PackageReference Include="System.ServiceModel.Primitives" Version="10.0.652802" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\Thrift\Thrift.csproj" />
diff --git a/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolHelperTests.cs b/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolHelperTests.cs
index 03e3efa..c05ee4d 100644
--- a/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolHelperTests.cs
+++ b/lib/netstd/Tests/Thrift.Tests/Protocols/TJsonProtocolHelperTests.cs
@@ -49,22 +49,20 @@
 
             foreach (var t in sets)
             {
-                Assert.IsTrue(TJSONProtocolHelper.GetTypeNameForTypeId(t.Item1) == t.Item2, $"Wrong mapping of TypeName {t.Item2} to TType: {t.Item1}");
+                Assert.AreEqual(t.Item2, TJSONProtocolHelper.GetTypeNameForTypeId(t.Item1), $"Wrong mapping of TypeName {t.Item2} to TType: {t.Item1}");
             }
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void GetTypeNameForTypeId_TStop_Test()
         {
-            TJSONProtocolHelper.GetTypeNameForTypeId(TType.Stop);
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.GetTypeNameForTypeId(TType.Stop));
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void GetTypeNameForTypeId_NonExistingTType_Test()
         {
-            TJSONProtocolHelper.GetTypeNameForTypeId((TType)100);
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.GetTypeNameForTypeId((TType)100));
         }
 
         [TestMethod]
@@ -88,29 +86,26 @@
 
             foreach (var t in sets)
             {
-                Assert.IsTrue(TJSONProtocolHelper.GetTypeIdForTypeName(t.Item2) == t.Item1, $"Wrong mapping of TypeName {t.Item2} to TType: {t.Item1}");
+                Assert.AreEqual(t.Item1, TJSONProtocolHelper.GetTypeIdForTypeName(t.Item2), $"Wrong mapping of TypeName {t.Item2} to TType: {t.Item1}");
             }
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void GetTypeIdForTypeName_TStopTypeName_Test()
         {
-            TJSONProtocolHelper.GetTypeIdForTypeName([(byte)TType.Stop, (byte)TType.Stop]);
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.GetTypeIdForTypeName([(byte)TType.Stop, (byte)TType.Stop]));
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void GetTypeIdForTypeName_NonExistingTypeName_Test()
         {
-            TJSONProtocolHelper.GetTypeIdForTypeName([100]);
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.GetTypeIdForTypeName([100]));
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void GetTypeIdForTypeName_EmptyName_Test()
         {
-            TJSONProtocolHelper.GetTypeIdForTypeName([]);
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.GetTypeIdForTypeName([]));
         }
 
         [TestMethod]
@@ -125,7 +120,7 @@
 
             foreach (var t in sets)
             {
-                Assert.IsTrue(TJSONProtocolHelper.IsJsonNumeric(t.Item1) == t.Item2, $"Wrong mapping of Char {t.Item1} to bool: {t.Item2}");
+                Assert.AreEqual(t.Item2, TJSONProtocolHelper.IsJsonNumeric(t.Item1), $"Wrong mapping of Char {t.Item1} to bool: {t.Item2}");
             }
         }
 
@@ -141,15 +136,14 @@
             foreach (var t in sets)
             {
                 var actualResult = TJSONProtocolHelper.ToHexVal((byte)t.Item1);
-                Assert.IsTrue(actualResult == t.Item2, $"Wrong mapping of char byte {t.Item1} to it expected hex value: {t.Item2}. Actual hex value: {actualResult}");
+                Assert.AreEqual(t.Item2, actualResult, $"Wrong mapping of char byte {t.Item1} to it expected hex value: {t.Item2}. Actual hex value: {actualResult}");
             }
         }
 
         [TestMethod]
-        [ExpectedException(typeof(TProtocolException))]
         public void ToHexVal_WrongInputChar_Test()
         {
-            TJSONProtocolHelper.ToHexVal((byte)'s');
+            Assert.ThrowsExactly<TProtocolException>(() => TJSONProtocolHelper.ToHexVal((byte)'s'));
         }
 
         [TestMethod]
@@ -164,8 +158,8 @@
 
             foreach (var t in sets)
             {
-                var actualResult = TJSONProtocolHelper.ToHexChar(t.Item1);
-                Assert.IsTrue(actualResult == t.Item2, $"Wrong mapping of hex value {t.Item1} to it expected char: {t.Item2}. Actual hex value: {actualResult}");
+                var actualResult = (char)TJSONProtocolHelper.ToHexChar(t.Item1);
+                Assert.AreEqual(t.Item2, actualResult, $"Wrong mapping of hex value {t.Item1} to it expected char: {t.Item2}. Actual hex value: {actualResult}");
             }
         }
     }
diff --git a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
index 53acd57..6e63bb2 100644
--- a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
+++ b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
@@ -26,10 +26,10 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="CompareNETObjects" Version="4.83.0" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
-    <PackageReference Include="MSTest.TestAdapter" Version="3.9.3" />
-    <PackageReference Include="MSTest.TestFramework" Version="3.9.3" />
+    <PackageReference Include="CompareNETObjects" Version="4.84.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
+    <PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
     <PackageReference Include="NSubstitute" Version="5.3.0" />
   </ItemGroup>
 
diff --git a/lib/netstd/Thrift/Thrift.csproj b/lib/netstd/Thrift/Thrift.csproj
index 199c9d5..c50e5a0 100644
--- a/lib/netstd/Thrift/Thrift.csproj
+++ b/lib/netstd/Thrift/Thrift.csproj
@@ -60,11 +60,11 @@
 
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0" Condition="'$(TargetFramework.StartsWith(`netstandard2.`))' == 'true'" />
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.6" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.6" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.6" />
+    <PackageReference Include="Microsoft.Extensions.Logging" Version="10.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="10.0.0" />
     <PackageReference Include="System.IO.Pipes.AccessControl" Version="5.0.0" Condition="'$(TargetFramework.StartsWith(`netstandard2.`))' == 'true'" />
-    <PackageReference Include="System.Net.Http.WinHttpHandler" Version="9.0.6" />
+    <PackageReference Include="System.Net.Http.WinHttpHandler" Version="10.0.0" />
   </ItemGroup>
 
   <ItemGroup>
