Skip to content

Migrate ResolveNativeReference to multithreaded execution #13631

@jankratochvilcz

Description

@jankratochvilcz

Background

ResolveNativeReference reads native manifest files referenced from a managed assembly and produces item lists for native references, content files, and TLBs. It uses the manifest reader infrastructure from Microsoft.Build.Tasks.Deployment.ManifestUtilities.

Migration scope

  • Apply [MSBuildMultiThreadableTask]
  • Implement IMultiThreadableTask
  • Absolutize paths via TaskEnvironment.GetAbsolutePath() for: NativeReferences items (manifest path), AdditionalSearchPaths, every fileref.ResolvedPath consumed before File system probes
  • Use TaskEnvironment.GetEnvironmentVariable() for: N/A
  • Use TaskEnvironment.GetProcessStartInfo() for: N/A

Known complexity factors

  • Delegates manifest parsing to internal Manifest/AssemblyIdentity types that internally do file I/O — propagate absolute paths
  • Multiple [Output] ItemGroups (ContainingReferenceFiles, ContainedPrerequisiteAssemblies, ContainedComComponents, ContainedTypeLibraries, ContainedLooseTlbFiles, ContainedLooseEtcFiles) populated from manifest-resolved paths — keep original spec where exposed (Sin 1)
  • Windows-only / NETFRAMEWORK-leaning feature

Exit criteria

  • Build clean, no new warnings
  • Existing tests pass
  • No regression in error message paths (Sin 2 audit)
  • No leakage of absolutized paths into [Output] properties (Sin 1 audit)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions