From 9c0de85b4cc3e45f5c490a73528ee6de4c29bace Mon Sep 17 00:00:00 2001 From: Missy Messa Date: Fri, 24 Jul 2026 15:48:12 -0700 Subject: [PATCH] Null-guard feedKeys/feedOverrides in SetupTargetFeedConfigV3 (fixes NRE on keyless Entra publish) --- .../src/model/SetupTargetFeedConfigV3.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs index a429f27a7e0..3c78cbd6a82 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/SetupTargetFeedConfigV3.cs @@ -71,8 +71,10 @@ public SetupTargetFeedConfigV3( StablePackagesFeed = stablePackagesFeed; SymbolServerVisibility = symbolPublishVisibility; Flatten = flatten; - FeedKeys = feedKeys.ToImmutableDictionary(i => i.ItemSpec, i => i.GetMetadata("Key")); - FeedOverrides = feedOverrides.ToImmutableDictionary(i => i.ItemSpec, i => i.GetMetadata("Replacement")); + // feedKeys/feedOverrides may be null when the corresponding MSBuild ItemGroup is empty + // (e.g. when publishing with Entra/WIF auth and no feed key is supplied). + FeedKeys = (feedKeys ?? Array.Empty()).ToImmutableDictionary(i => i.ItemSpec, i => i.GetMetadata("Key")); + FeedOverrides = (feedOverrides ?? Array.Empty()).ToImmutableDictionary(i => i.ItemSpec, i => i.GetMetadata("Replacement")); AzureDevOpsFeedsKey = FeedKeys.TryGetValue("https://pkgs.dev.azure.com/dnceng", out string key) ? key : null; Log = log; }