Skip to content

Create and ship AppHosts for MSBuild for the .NET distribution of MSBuild #12995

@baronfel

Description

@baronfel

Summary

We should enable MSBuild to be invoked directly as a native executable (MSBuild.exe / MSBuild) instead of through dotnet MSBuild.dll. This will provide

  • Better process identification (processes show as "MSBuild" not "dotnet")
  • Win32 manifest embedding support (COM interop)
    • critical for full support of the .NET TaskHost feature set
  • Consistency with Roslyn compilers (csc, vbc) which already use app hosts
  • Simplified invocation model
    • no more "if Framework then MSbuild.exe else dotnet.exe msbuild.dll"-style logic in the codebase

Background and Motivation

See #12857 for a full treatment of the motivation, but the gist is we'll be more understandable to users, we'll unblock key modernization features, and consuming MSBuild will get simpler overall.

Proposed Feature

See #12857 for a full treatment.

Alternative Designs

No response

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions