Skip to content

Migrate GenerateLauncher to multithreaded execution #13628

@jankratochvilcz

Description

@jankratochvilcz

Background

GenerateLauncher produces a ClickOnce launcher executable via the internal LauncherBuilder. It accepts launcher binary location and entry point inputs that need to be absolutized for thread-safe execution.

Migration scope

  • Apply [MSBuildMultiThreadableTask]
  • Implement IMultiThreadableTask
  • Absolutize paths via TaskEnvironment.GetAbsolutePath() for: LauncherPath, OutputPath, EntryPoint.ItemSpec, AssemblyName-derived paths
  • Use TaskEnvironment.GetEnvironmentVariable() for: N/A
  • Use TaskEnvironment.GetProcessStartInfo() for: N/A

Known complexity factors

  • Delegates to LauncherBuilder (internal) which performs file copy / patching of the launcher binary
  • Windows-only (NativeMethodsShared.IsWindows early-out)
  • Sets [Output] OutputEntryPoint derived from input — preserve original spec (Sin 1)

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