Skip to content

Bump Microsoft.Extensions.DependencyInjection.Abstractions to 9.0.1 (fixes azure-functions-durable-extension#3433)#723

Merged
YunchuWang merged 1 commit intomicrosoft:mainfrom
YunchuWang:wangbill/bump-extensions-9.0.1
May 7, 2026
Merged

Bump Microsoft.Extensions.DependencyInjection.Abstractions to 9.0.1 (fixes azure-functions-durable-extension#3433)#723
YunchuWang merged 1 commit intomicrosoft:mainfrom
YunchuWang:wangbill/bump-extensions-9.0.1

Conversation

@YunchuWang
Copy link
Copy Markdown
Member

Summary

Fixes Azure/azure-functions-durable-extension#3433: downstream Azure Functions Worker isolated apps consuming Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged (which transitively pulls in Microsoft.DurableTask.Extensions.AzureBlobPayloads) hit NU1605 on the auto-generated WorkerExtensions.csproj.

Root cause

  • Microsoft.Azure.WebJobs 3.0.45Microsoft.Extensions.Logging.Abstractions 9.0.1 transitively floors Microsoft.Extensions.DependencyInjection.Abstractions at >= 9.0.1.
  • Microsoft.DurableTask.Extensions.AzureBlobPayloads (1.23.x / 1.24.x) directly pinned DependencyInjection.Abstractions = 8.0.2.
  • NuGet "nearest wins" resolves the 8.0.2 direct reference for the auto-generated WorkerExtensions.csproj, then warns/errors that 8.0.2 was selected over 9.0.1 → NU1605.

Why the original pin no longer applies

The 8.x pin landed in #698 because the Azure Functions host then targeted net8.0 and could only resolve 8.x shared-framework assemblies. As of azure-functions-host v4.1049.x the host targets net10.0 and ships 9.x/10.x via runtimeassemblies-relaxed.json, so the pin is now stale.

Changes

  • Microsoft.Extensions.DependencyInjection.Abstractions 8.0.2 → 9.0.1
  • Microsoft.Bcl.AsyncInterfaces 8.0.0 → 9.0.1 (DI.Abstractions 9.0.1 transitively floors Bcl.AsyncInterfaces at 9.0.1, so this is required to avoid a cascading NU1605)
  • Updated the explanatory comment in Directory.Packages.props to reflect the host's net10.0 transition
  • CHANGELOG.md entry under Unreleased

Validation

  • dotnet build of all packable projects: ✅ succeeds (only pre-existing StyleCop warnings)
  • Local-packed AzureBlobPayloads.1.24.2-pre.fix3433.nupkg nuspec confirms DependencyInjection.Abstractions >= 9.0.1 direct dependency.
  • Built downstream Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged SDK against the locally-packed prereleases and a DotNetIsolatedSmokeTest that triggered the original NU1605: Build succeeded. 0 Warning(s) 0 Error(s).

Related

  • Azure DevOps belt-and-suspenders workaround in AAPT-DTMB: PR 15650044 (adds direct DI.Abstractions = 9.0.1 reference in WebJobs.Extensions.DurableTask.AzureManaged.csproj). It can stay or be reverted once a release containing this fix ships.

Copilot AI review requested due to automatic review settings May 7, 2026 00:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates central package versions to avoid downstream NuGet downgrade errors (NU1605) when Microsoft.DurableTask.Extensions.AzureBlobPayloads is consumed in Azure Functions Worker isolated apps, aligning with newer dependency floors brought in via WebJobs/Logging abstractions.

Changes:

  • Bump Microsoft.Extensions.DependencyInjection.Abstractions from 8.0.2 to 9.0.1.
  • Bump Microsoft.Bcl.AsyncInterfaces from 8.0.0 to 9.0.1 to prevent cascading downgrade conflicts.
  • Update the central-package-management comment and add an Unreleased changelog entry.

Reviewed changes

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

File Description
Directory.Packages.props Updates centrally managed package versions and revises the rationale comment for Functions-host compatibility/NU1605 avoidance.
CHANGELOG.md Adds an Unreleased entry describing the package-floor alignment for downstream consumers.

Comment thread Directory.Packages.props Outdated
Comment thread CHANGELOG.md Outdated
@YunchuWang YunchuWang force-pushed the wangbill/bump-extensions-9.0.1 branch from 20d23f8 to eb2612a Compare May 7, 2026 15:24
Copilot AI review requested due to automatic review settings May 7, 2026 15:28
@YunchuWang YunchuWang force-pushed the wangbill/bump-extensions-9.0.1 branch from eb2612a to 05f666f Compare May 7, 2026 15:28
Resolves NU1605 in downstream Azure Functions Worker isolated apps that consume Microsoft.DurableTask.Extensions.AzureBlobPayloads via Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged.

Microsoft.Azure.WebJobs 3.0.45 -> Microsoft.Extensions.Logging.Abstractions 9.0.1 transitively floors Microsoft.Extensions.DependencyInjection.Abstractions at >= 9.0.1, while AzureBlobPayloads previously pinned it to 8.0.2. Auto-generated WorkerExtensions.csproj resolved 8.0.2 by 'nearest wins', triggering NU1605.

The original 8.x pin (PR microsoft#698) was correct when the Functions host targeted net8.0 and could only provide 8.x shared-framework assemblies. As of azure-functions-host v4.1049.x the host targets net10.0 and ships 9.x/10.x via runtimeassemblies-relaxed.json, so this pin is no longer necessary.

Bumping DI.Abstractions to 9.0.1 transitively floors Microsoft.Bcl.AsyncInterfaces at >= 9.0.1, so that package is bumped together.

Fixes Azure/azure-functions-durable-extension#3433

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Bill Wang <wangbill@microsoft.com>
@YunchuWang YunchuWang force-pushed the wangbill/bump-extensions-9.0.1 branch from 05f666f to 0f336bd Compare May 7, 2026 15:30
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread Directory.Packages.props
Comment on lines 10 to +16
<!-- Microsoft.Extensions.* Packages
IMPORTANT: These assemblies are part of the .NET shared framework and load into the
Azure Functions host process, which runs on net8.0. Package versions MUST stay at 8.x
so the assembly versions (8.0.0.0) match what the host provides. Using 10.x causes
FileNotFoundException at runtime because the host cannot satisfy Version=10.0.0.0.
DO NOT upgrade to 10.x+ until the Azure Functions host itself targets .NET 10.
See: https://github.com/Azure/azure-functions-host (WebJobs.Script.csproj -> net8.0) -->
Azure Functions host process. Historically the host ran on net8.0 and required the
package versions to stay at 8.x so the assembly versions (8.0.0.0) matched what the
host provided; using 10.x caused FileNotFoundException at runtime.
As of azure-functions-host v4.1049.x the host targets net10.0 and ships 9.x/10.x
shared-framework assemblies via runtimeassemblies-relaxed.json (minorMatchOrLower),
Comment thread CHANGELOG.md
# Changelog

## Unreleased
- Bump `Microsoft.Extensions.DependencyInjection.Abstractions` from 8.0.2 to 9.0.1 (and `Microsoft.Bcl.AsyncInterfaces` from 8.0.0 to 9.0.1, which the former transitively floors at 9.0.1) to align with the floor declared by `Microsoft.Azure.WebJobs 3.0.45 -> Microsoft.Extensions.Logging.Abstractions 9.0.1`. Fixes NU1605 in downstream Azure Functions Worker isolated apps consuming `Microsoft.DurableTask.Extensions.AzureBlobPayloads` ([Azure/azure-functions-durable-extension#3433](https://github.com/Azure/azure-functions-durable-extension/issues/3433)).
@YunchuWang YunchuWang merged commit e09e2ba into microsoft:main May 7, 2026
5 checks passed
Copilot AI mentioned this pull request May 7, 2026
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants