Skip to content

Support new sdk, the new fsproj of .NET Core Sdk #705

Closed
@enricosada

Description

@enricosada

An important note: the .NET Core Sdk can build all target frameworks (net, netcore, pcl), so both .NET Framework and .NET Core projects.
New fsproj is going to be the replacement for old fsproj, because is based on the new .NET Sdk
the msbuild from mono, .net full can run same project too.

FSC and related consumer (FSAC based ide) should support the new .NET Sdk, so for f# the new fsproj.
Ignore project.json because is dead, and there is a clean project.json -> fsproj migration, same features.

The workflow is the same, msbuild call Build target, who invoke fsc using FscTask from FSharp.Build.dll
The rest of sdk (Microsoft.NET.Sdk) is shared with the rest of .net (c#, vb)
Some notable changes from old fsproj atm: fsc is inside FSharp.Compiler.Tools, the target files in FSharp.NET.Sdk.

I miss some info.

Starting from the basics. What FCS need? What editors need? Previously that was done using project cracker, but maybe we can fix that without duplicate code/hacks.
My idea is also reuse code/lib from sdk/c#/omnisharp for common info (like compile items, etc), without hack/fork these in project cracker.

What FCS need?

  • 1 get fsc arguments.
  • 2 get projectreference list (??)
  • 3 ??

What ide/editors need?

  • A compile items
  • B all nont compile items to show (None etc)
  • C target frameworks (can be more than once)
  • D ??

/cc @tpetricek @dsyme @7sharp9 @latkin @vladima FCS team
/cc @rneatherway emacs
/cc @kjnilsson vim
/cc @guillermooo sublime
/cc @KevinRansom @cartermp vs
/cc @nosami @mrward vs on mac
/cc @Krzysztof-Cieslak ionide vscode/atom
/cc @alfonsogarciacaro fable

(please add who is missing) and github teams maybe? :D

Some possibile solution

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions