diff --git a/src/Layout/toolset-tasks/OverrideAndCreateBundledNETCoreAppPackageVersion.cs b/src/Layout/toolset-tasks/OverrideAndCreateBundledNETCoreAppPackageVersion.cs index f8ca066ed021..c3175a3c11b9 100644 --- a/src/Layout/toolset-tasks/OverrideAndCreateBundledNETCoreAppPackageVersion.cs +++ b/src/Layout/toolset-tasks/OverrideAndCreateBundledNETCoreAppPackageVersion.cs @@ -54,8 +54,10 @@ public static string ExecuteInternal( var propertyGroup = projectXml.Root.Elements(ns + "PropertyGroup").First(); + var isSDKServicing = IsSDKServicing(propertyGroup.Element(ns + "NETCoreSdkVersion").Value); + var originalBundledNETCoreAppPackageVersion = - propertyGroup.Element(ns + "BundledNETCoreAppPackageVersion").Value; + propertyGroup.Element(ns + "BundledNETCoreAppPackageVersion").Value; propertyGroup.Element(ns + "BundledNETCoreAppPackageVersion").Value = microsoftNETCoreAppRefPackageVersion; void CheckAndReplaceElement(XElement element) @@ -83,16 +85,24 @@ void CheckAndReplaceAttribute(XAttribute attribute) attribute.Value = microsoftNETCoreAppRefPackageVersion; } - CheckAndReplaceElement(propertyGroup.Element(ns + "BundledNETCorePlatformsPackageVersion")); + if (!isSDKServicing) + { + CheckAndReplaceElement(propertyGroup.Element(ns + "BundledNETCorePlatformsPackageVersion")); + } var itemGroup = projectXml.Root.Elements(ns + "ItemGroup").First(); - CheckAndReplaceAttribute(itemGroup - .Elements(ns + "KnownFrameworkReference").First().Attribute("DefaultRuntimeFrameworkVersion")); + if (!isSDKServicing) + { + CheckAndReplaceAttribute(itemGroup + .Elements(ns + "KnownFrameworkReference").First().Attribute("DefaultRuntimeFrameworkVersion")); + CheckAndReplaceAttribute(itemGroup + .Elements(ns + "KnownFrameworkReference").First().Attribute("TargetingPackVersion")); + } + CheckAndReplaceAttribute(itemGroup .Elements(ns + "KnownFrameworkReference").First().Attribute("LatestRuntimeFrameworkVersion")); - CheckAndReplaceAttribute(itemGroup - .Elements(ns + "KnownFrameworkReference").First().Attribute("TargetingPackVersion")); + CheckAndReplaceAttribute(itemGroup .Elements(ns + "KnownAppHostPack").First().Attribute("AppHostPackVersion")); CheckAndReplaceAttribute(itemGroup @@ -100,5 +110,17 @@ void CheckAndReplaceAttribute(XAttribute attribute) return projectXml.ToString(); } + + /// + /// For SDK servicing, few Attributes like "DefaultRuntimeFrameworkVersion" does not use the latest flowed version + /// so there is no need to replace them. + /// + /// + private static bool IsSDKServicing(string sdkVersion) + { + var parsedSdkVersion = NuGet.Versioning.NuGetVersion.Parse(sdkVersion); + + return parsedSdkVersion.Patch % 100 != 0; + } } }