Skip to content

Upgrade dependencies for .NET 8 - #1385

Open
Bernd Verst (berndverst) wants to merge 1 commit into
mainfrom
berndverst-upgrade-dependencies
Open

Upgrade dependencies for .NET 8#1385
Bernd Verst (berndverst) wants to merge 1 commit into
mainfrom
berndverst-upgrade-dependencies

Conversation

@berndverst

Copy link
Copy Markdown
Member

Summary

  • Modernize product, test, sample, and Service Fabric dependencies while retaining netstandard2.0, net472, and net48 support.
  • Migrate breaking APIs for MSTest 4, CommandLineParser 2.9, System.Linq.Async, and consolidated System.Reactive packaging.
  • Pin patched legacy Service Bus and storage transitives, and update distributed-tracing prerequisites to the .NET 8 SDK.

Compatibility notes

  • Application Insights remains on 2.23 because 3.x removes telemetry-module APIs exposed by this repository.
  • System.Reactive remains on 6.1 because 7.0.0's analyzer requires Roslyn 4.12 and breaks builds with the .NET 8 SDK.
  • Legacy Service Bus transitives remain within compatible major versions while taking patched releases.

Validation

  • Debug solution and Release product matrix build with the .NET 8 SDK across netstandard2.0, net8.0, net472, and net48 surfaces.
  • Core, Emulator, Service Fabric, and local Service Bus test coverage passes on the retained frameworks.
  • PackageReference projects have no known vulnerable package findings.
  • The existing .NET Framework tracing failures reproduce on the unchanged baseline; one Azure Storage scheduled-start timing assertion remains timing-sensitive.

Preserve netstandard2.0 and .NET Framework 4.7.2+ compatibility while modernizing packages and related APIs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: cc0975a2-b849-4657-a61b-0166df132157
CopilotAI lite review requested due to automatic review settings August 11, 2026 19:20
Assert.AreEqual(message, JToken.Parse(status?.Output));
Assert.AreEqual(message, JToken.Parse(status.Input));
Assert.AreEqual(message, JToken.Parse(status?.Output).Value<string>());
Assert.AreEqual(message, JToken.Parse(status.Input).Value<string>());

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades and modernizes dependency versions across the product, tests, samples, and Service Fabric assets to support building and running with the .NET 8 SDK while retaining netstandard2.0, net472, and net48 compatibility.

Changes:

  • Updated centrally managed package versions (Azure SDKs, MSTest 4.x, System.* libraries, OpenTelemetry) and adjusted projects to match.
  • Migrated breaking API usages (MSTest “ThrowsExactly*”, CommandLineParser 2.9 parsing/help patterns, System.Linq.Async overload changes, consolidated System.Reactive package).
  • Updated Service Fabric build tooling and pinned patched legacy transitives for Service Bus/storage scenarios.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 2 comments.

Show a summary per file
FileDescription
test/TestFabricApplication/TestApplication/TestApplication.sfprojUpdate Service Fabric MSBuild package import/version references.
test/TestFabricApplication/TestApplication/packages.configBump Service Fabric MSBuild NuGet package version.
test/DurableTask.Stress.Tests/Program.csMigrate CLI parsing to CommandLineParser 2.9 API pattern.
test/DurableTask.Stress.Tests/Options.csConsolidate options to CommandLineParser 2.9 attributes/help generation.
test/DurableTask.ServiceBus.Tests/ServiceBusOrchestrationServiceTests.csAdjust JSON assertions for stricter MSTest/runtime behavior.
test/DurableTask.ServiceBus.Tests/SampleScenarioTests.csSwitch to MSTest ThrowsExactlyAsync for precise exception assertions.
test/DurableTask.ServiceBus.Tests/OrchestrationHubTableClientTests.csNormalize assert argument ordering and null assertions.
test/DurableTask.ServiceBus.Tests/InstanceStoreQueryTests.csReplace Assert.IsTrue(false) with Assert.Fail().
test/DurableTask.ServiceBus.Tests/ErrorHandlingTests.csRe-enable [TestMethod] while keeping test ignored.
test/DurableTask.ServiceBus.Tests/DurableTask.ServiceBus.Tests.csprojAdd net8-only package needed after dependency upgrades.
test/DurableTask.Emulator.Tests/EmulatorFunctionalTests.csUse MSTest ThrowsExactlyAsync for conflict checks.
test/DurableTask.Core.Tests/WorkItemDispatcherTests.csAlign ILogger.BeginScope signature with newer logging abstractions.
test/DurableTask.Core.Tests/TraceContextBaseTest.csUse ThrowsExactly for strict exception matching.
test/DurableTask.Core.Tests/RetryInterceptorTests.csUpdate exception assertions and test method attributes for MSTest 4.
test/DurableTask.Core.Tests/ExceptionHandlingIntegrationTests.csUpdate test attributes for MSTest 4 behavior.
test/DurableTask.Core.Tests/DispatcherMiddlewareTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.Core.Tests/ContinueAsNewTraceBehaviorTests.csReplace ExpectedException with Assert.ThrowsExactly lambdas.
test/DurableTask.AzureStorage.Tests/TestTablePartitionManager.csNormalize assertions; minor test reliability/readability tweaks.
test/DurableTask.AzureStorage.Tests/StressTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/Storage/TableDeleteBatchParallelTests.csUse ThrowsExactlyAsync for cancellation assertions.
Test/DurableTask.AzureStorage.Tests/Storage/DurableTaskStorageExceptionTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/Net/UriPathTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/MessageManagerTests.csUpdate data-driven test attributes and strict exception assertions.
test/DurableTask.AzureStorage.Tests/KeySanitationTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/DurableTask.AzureStorage.Tests.csprojAdjust package pins/groups to align with updated dependency graph.
test/DurableTask.AzureStorage.Tests/Correlation/StringExtensionsTest.csUse ThrowsExactly for strict exception matching.
test/DurableTask.AzureStorage.Tests/Correlation/CorrelationScenarioTest.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/AzureTableQueryFilterTests.csUpdate data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/AzureStorageScenarioTests.csUpdate data-driven test attributes and JSON assertions.
test/DurableTask.AzureStorage.Tests/AzureStorageScaleTests.csUpdate data-driven test attributes and strict exception assertions.
test/DurableTask.AzureStorage.Tests/AsyncAutoResetEventTests.csUpdate data-driven test attributes and assertion ordering.
test/DurableTask.AzureServiceFabric.Tests/DurableTask.AzureServiceFabric.Tests.csprojRemove version overrides; rely on central package management.
test/DurableTask.AzureServiceFabric.Tests/App.configRemove outdated binding redirects after dependency updates.
Test/DurableTask.AzureServiceFabric.Tests/AllowedTypesSerializationBinderTests.csUse ThrowsExactly* for strict exception matching.
test/DurableTask.AzureServiceFabric.Integration.Tests/FunctionalTests.csReplace ExpectedException with explicit ThrowsExactlyAsync patterns.
test/DurableTask.AzureServiceFabric.Integration.Tests/DurableTask.AzureServiceFabric.Integration.Tests.csprojRemove package version overrides; rely on central package management.
test/DurableTask.AzureServiceFabric.Integration.Tests/DeploymentUtil/DeploymentHelper.csUpdate Service Fabric client call to new overload requiring options.
test/DurableTask.AzureServiceFabric.Integration.Tests/App.configRemove outdated binding redirects after dependency updates.
src/DurableTask.ServiceBus/DurableTask.ServiceBus.csprojPin patched legacy transitives and add net48-only dependencies.
src/DurableTask.Core/DurableTask.Core.csprojConsolidate reactive dependencies to System.Reactive.
src/DurableTask.AzureStorage/OrchestrationSessionManager.csAdjust LINQ-async ToDictionaryAsync call for updated overloads.
samples/DurableTask.Samples/Program.csMigrate CLI parsing to CommandLineParser 2.9 API pattern.
samples/DurableTask.Samples/Options.csUpdate option attributes and help generation for CommandLineParser 2.9.
samples/DistributedTraceSample/README.mdUpdate prerequisites to .NET 8 SDK and markdown formatting.
samples/DistributedTraceSample/ApplicationInsights/README.mdUpdate prerequisites to .NET 8 SDK and markdown formatting.
Directory.Packages.propsCentral package version upgrades and framework-scoped dependency reshaping.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@@ -476,7 +476,7 @@ public async Task ForceTerminate_Already_Finished_Orchestration()

var reason = "Testing terminatiom of already finished orchestration";
@@ -716,8 +716,8 @@ await WaitForConditionAsync(
// guarantee table is corrrectly updated
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@berndverst