Sdk: Blocking issues for the conversion of CLI to MSBuild

Created on 9 Jul 2016  路  13Comments  路  Source: dotnet/sdk

This issue is meant for tracking all of our external blocking issues that are preventing the CLI to work on MSBuild.

Non-blocking issues, but needed for shipping:

Area-External

Most helpful comment

Would anyone from the ASP.NET team be willing/able to share a rough concept of what dotnet-* tools are going to look like after the move to MSBuild?

All 13 comments

Hi @eerhardt thanks for opening this issue. Should help us stay organized to unblock you guys.

Can we consider https://github.com/Microsoft/msbuild/issues/658 as blocking this? I don't think we can consider the CLI capable of launching MSBuild scripts if custom task dependencies don't work :)

@anurse - I tend to agree. That is a serious issue that most custom tasks are going to hit.

@anurse @eerhardt FYI I've marked dotnet/cli#658 as complete.

馃憖

Will this be using the .NET Core version of MSBuild only? I have a use case where .NET CLI calls my dotnet-compile-dnc process that runs on mono (my compiler is not ported to .NET Core at the moment). In that case I will be forced to port the compiler to .NET Core which may hit issues like unavailable APIs.

Even if it only uses the .NET Core version of MSBuild (I don't know either way if there are plans to allow other versions of MSBuild to be used), you would definitely be able to invoke a mono-based compiler. MSBuild just shells out to compiler processes so you'd just need to be build a .NET Core MSBuild task that invokes your mono-hosted compiler.

Would it support error redirect?

I am asking as current I support mono's xbuild by hosting the compiler in process inside a task.

I'd caution against hosting the compiler in-process in MSBuild since it puts you on the hook for figuring out all the isolation. csc is hosted completely out-of-process in MSBuild, but there is an in-proc Csc MSBuild task that invokes csc.exe, providing the necessary parameters, reads the output of the compilation and generates the necessary MSBuild data (errors, items, properties etc.)

I do know that by default, if you write to stderr and use the MSBuild Exec task, it should capture those messages as errors. Returning a non-zero exit code is interpreted as a failing task.

Anyway, to the topic at hand, I don't know the plans for allowing the use of other MSBuild variants (Core/Desktop/Mono) in dotnet build but either way, architecting tasks around invoking exes would give you the most flexibility since you can launch any kind of exe you need :).

Thats is a good idea. After all it hows the CLI works today.

Would anyone from the ASP.NET team be willing/able to share a rough concept of what dotnet-* tools are going to look like after the move to MSBuild?

All of the blocking issues in this list have been checked off. This can now be closed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

clairernovotny picture clairernovotny  路  3Comments

krwq picture krwq  路  3Comments

davkean picture davkean  路  3Comments

noelitoa picture noelitoa  路  3Comments

moozzyk picture moozzyk  路  3Comments