Background
ResolveSDKReference resolves SDK references against installed Windows / extension SDKs and emits resolved metadata items. It is one of the larger tasks (~75 KB) with substantial caching and Windows-specific logic.
Migration scope
Known complexity factors
- Several
static readonly caches/regexes (PlatformAliases, SdkReferenceFormatRegex, s_appxSplitChar, s_defaultTargetPlatformVersion) — confirm all are immutable / thread-safe
- Calls into
ToolLocationHelper and SDK manifest parsing — those helpers may consume process env (PATH, registry) outside TaskEnvironment
- Windows-only main path;
NativeMethodsShared.IsWindows early-out
- Emits many
[Output] ItemGroups derived from ItemSpecs — preserve original-form (Sin 1)
Exit criteria
References
Background
ResolveSDKReferenceresolves SDK references against installed Windows / extension SDKs and emits resolved metadata items. It is one of the larger tasks (~75 KB) with substantial caching and Windows-specific logic.Migration scope
[MSBuildMultiThreadableTask]IMultiThreadableTaskTaskEnvironment.GetAbsolutePath()for: SDKReferences items, References items, Projects items, ResolvedSDKReferences ItemSpecs, RuntimeReferenceOnlySDKDependencies, ProjectName-derived pathsTaskEnvironment.GetEnvironmentVariable()for: any registry/SDK fallbacks invoked fromToolLocationHelper(review)TaskEnvironment.GetProcessStartInfo()for: N/AKnown complexity factors
static readonlycaches/regexes (PlatformAliases,SdkReferenceFormatRegex,s_appxSplitChar,s_defaultTargetPlatformVersion) — confirm all are immutable / thread-safeToolLocationHelperand SDK manifest parsing — those helpers may consume process env (PATH, registry) outsideTaskEnvironmentNativeMethodsShared.IsWindowsearly-out[Output]ItemGroups derived from ItemSpecs — preserve original-form (Sin 1)Exit criteria
References