-
Notifications
You must be signed in to change notification settings - Fork 25
How to migrate preview2 projects to 1.0
The dotnet-migrate
is the sdk tool to convert preview2
projects (project.json
/xproj
) to 1.0
(fsproj, msbuild based)
It's invoked like dotnet migrate
in the project directory
The dotnet-migrate
doesnt support F# yet.
It's just not implemented yet, see dotnet/netcorecli-fsc#38
and up-for-grab
(nice for new contributors) if someone want to fix that.
As workaround:
-
Normalize F# as C#
- In
project.json
remove"compilerName": "fsc",
- In
-
If multiple projects, repeat 1. for all project referenced (migrate will convert all referenced projects)
-
dotnet migrate
it!- Same bugs/limitations of C#, so report these to https://github.com/dotnet/cli/issues
-
Rename the created
{yourproject}.csproj
in{yourproject}.fsproj
-
Normalize C#
.csproj
as F#.fsproj
-
Fix Sdk Attribute, adding prefix
FSharp.NET.Sdk;
like<Project Sdk="FSharp.NET.Sdk;Microsoft.NET.Sdk">
-
Remove
Microsoft.FSharp.Core.netcore
PackageReference -
Add
FSharp.NET.Sdk
package (the F# msbuild integration) andFSharp.Core
<ItemGroup> <PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" /> <PackageReference Include="FSharp.Core" Version="4.1.*" /> </ItemGroup>
-
-
Add all the source files to be built to the
.fsproj
.For example if you had the following in the
project.json
.{ "buildOptions": { ... "compile": { "includeFiles": [ "Model.fs", "Service.fs" } } ... }
Then in the new
.fsproj
file you'll need to add the following.<ItemGroup> <Compile Include="Model.fs" /> <Compile Include="Service.fs" /> </ItemGroup>
-
If you have multiple projects, fix
<ProjectReference
path from.csproj
to.fsproj
That's it. As usual now:
dotnet restore
-
dotnet build
ordotnet run
ordotnet test
- Home
- Status
- FAQ
- Info-for-library-maintainers
- Current Stable (LTS) Version:
- Next Version (WIP):
- Previous Versions: