Skip to content

.NET Framework TaskHost #711

@rainersigwald

Description

@rainersigwald

Currently, MSBuild running on .NET Core cannot run tasks compiled against the full desktop .NET environment (because those assemblies can't be loaded in-proc in a .NET Core process). This might be overly limiting, especially considering existing NuGet packages that are built targeting MSBuild 12 or 14.

There's some precedent for this: full-framework MSBuild ships with MSBuildTaskHost.exe, which is used to run tasks that require a different runtime (in practice, this means that they were compiled against .NET Framework version 2 instead of 4.x). There's logic in NodeProviderOutOfProcTaskHost to identify the the right executable to run a task that could potentially be extended.

Further considerations:

  • Is this worth the effort?
  • Will there be communication-protocol problems between nodes running on different runtimes?
  • Should probably allow Mono, .NET Core, and Full Framework options (though assemblies that target netstandard should work in Mono and desktop).
  • what if different runtimes have different dependency resolution schemes (e.g. deps.json)

Metadata

Metadata

Assignees

No one assigned

    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