Skip to content

.NET SDK Finalizer Feature Band calculation doesn't match SDK's calculation #43876

@dsplaisted

Description

@dsplaisted

In the SDK, when calculating the feature band, we look for whether several strings (including rtm) are contained in the prerelease string:

if (string.IsNullOrEmpty(version.Prerelease) || version.Prerelease.Contains("dev") || version.Prerelease.Contains("ci") || version.Prerelease.Contains("rtm"))

In the finalizer, it looks like we are checking to see that one of the prerelease segments matches the list of strings, and we aren't including rtm in the list.

if ((CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, 0, rgsczPrereleaseParts[0], -1, L"dev", -1)) &&
(CSTR_EQUAL != ::CompareStringW(LOCALE_INVARIANT, 0, rgsczPrereleaseParts[0], -1, L"ci", -1)))

This means that the feature bands for versions like the following won't be calculated correctly in the finalizer:

  • 9.0.100-servicing.12345.6
  • 9.0.100-rtm.12345.6

This means that for SDKs with these non-stabilized version numbers, we won't correctly uninstall workload sets in the finalizer when the .NET SDK is uninstalled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions