dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.

Home Page:https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Question: Workspace for new csproj format

josephwoodward opened this issue · comments

Hi,

I've been working on a Visual Studio Code extension that makes heavy use of a ProjectJsonWorkspace to load dependencies which lives within the Microsoft.DotNet.ProjectModel.Workspaces package, however with .NET Core now using MSBuild this workspace becomes redundant.

Is there an equivalent workspace format I can use that supports the .NET Standard? Everything I've seen about the MSBuildWorkspace appears to be Windows only.

Tagging @DustinCampbell and @mattwar

We haven't done the work to make MSBuildWorkspace work properly with the new MSBuild cross-platform. In the meantime, you might look at what omnisharp does to populate it's workspace.

Alright, thank you very much @Pilchie, I've already spoken with @DustinCampbell about it who was very helpful. I just wanted to exhaust all options before I start investigating how to build a custom workspace (which is how OmniSharp do it).

Hi @Pilchie Any plan to make MSBuildWorkspace work properly with the new MSBuild cross-platform?

@DustinCampbell has been doing some thinking around this, but it's quite tricky due to a few issues:

  1. MSBuild not having a central location to depend on anymore.
  2. If your app is running on .NET Core, it won't be able to handle (some) projects that target .NET Framework, since the tasks won't run on .NET Core.

However, https://github.com/omnisharp/omnisharp-roslyn does support creating it's workspace from an SDK csproj.

Thank you @Pilchie for your quick response. Our project https://github.com/dotnet/docfx depends heavily on MSBuildWorkspace to load the projects and then generate documentation from source code. What would be your suggestions for us? Waiting for MSBuildWorkspace's x-plaform support?