You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Notes: Portable Libraries: TBD:
currently the SDK doesn't support portable library targets. Use the legacy project format for these.
Really unfortunately in FSharp.Core we rely on some APIs that require high versions of netstandard (1.6) -- so we will probably have to produce a new netstandard version of FSharp.Core for portability ... probably netstandard 1.3.
System.ValueTuple Reference
It is not necessary to include System.ValueTuple reference. Thje reason is that a package reference is automagically added during the build.
This is valuable because System.ValueTuple is kind of confusing ...
You need to reference it for net45,net46, net461, net462, net47 and coreapp1.+ and netstandard 1.6. You don't need to reference it for net471 and up or netcoreapp 2.+ or netstandard2.+.
net47 is the most vexing, because the full desktop framework contains the type but the reference assemblies do not contain the type forward.
DisableImplicitSystemValueTupleReference
To disable this, because ... reasons ...
Use the DisableImplicitSystemValueTupleReference property [true or false]
FSharp.Core reference
When building coreclr the framework automagically references the FSharp.Core using a wild card
Currently:
1.0.0-*
Once we have a netcore2.0 fsharp.core package it will likely change to 1.0.0-* for netcoreapp1.+ and netstandard1+ and 2.0.0-* for netcoreapp2+ etc.
DisableImplicitFSharpCoreReference
To disable automagic fsharp.core reference use the DisableImplicitFSharpCoreReference property [true or false]
FSharpCoreImplicitPackageVersion
To change the package version set: the FSharpCoreImplicitPackageVersion to a specific value.
TargetFSharpCorePackageIdentity
To use a different nuget package for FSharp.Core.dll use the TargetFSharpCorePackageIdentity property.
TargetFSharpCoreVersion
For desktop versions, E.g. those who want to target FSharp.Core.4.3.0.0 e.t.c use the TargetFSharpCoreVersion property. This has no effect on netstandard or netcoreapp target builds.
These proposals are implemented within the VisualFSharp repo in targets we deploy with the compiler, and so will not require coordination with the cli or sdk to implement.
https://github.com/fsharp/fslang-design/blob/master/tooling/FST-1002-fsharp-in-dotnet-sdk.md
The basic template for a console app looks like:
Modify the TargetFramework tag to deal with different frameworks:
valid values include but are not limited to:
TargetFrameworks
The dotnetsdk allows a project to produce multiple targets use the target frameworks tag
Notes:
Portable Libraries: TBD:
currently the SDK doesn't support portable library targets. Use the legacy project format for these.
Really unfortunately in FSharp.Core we rely on some APIs that require high versions of netstandard (1.6) -- so we will probably have to produce a new netstandard version of FSharp.Core for portability ... probably netstandard 1.3.
System.ValueTuple Reference
It is not necessary to include System.ValueTuple reference. Thje reason is that a package reference is automagically added during the build.
This is valuable because System.ValueTuple is kind of confusing ...
You need to reference it for net45,net46, net461, net462, net47 and coreapp1.+ and netstandard 1.6. You don't need to reference it for net471 and up or netcoreapp 2.+ or netstandard2.+.
net47 is the most vexing, because the full desktop framework contains the type but the reference assemblies do not contain the type forward.
DisableImplicitSystemValueTupleReference
To disable this, because ... reasons ...
Use the
DisableImplicitSystemValueTupleReference
property [true or false]FSharp.Core reference
When building coreclr the framework automagically references the FSharp.Core using a wild card
Currently:
1.0.0-*
Once we have a netcore2.0 fsharp.core package it will likely change to 1.0.0-* for netcoreapp1.+ and netstandard1+ and 2.0.0-* for netcoreapp2+ etc.
DisableImplicitFSharpCoreReference
To disable automagic fsharp.core reference use the
DisableImplicitFSharpCoreReference
property [true or false]FSharpCoreImplicitPackageVersion
To change the package version set: the
FSharpCoreImplicitPackageVersion
to a specific value.TargetFSharpCorePackageIdentity
To use a different nuget package for FSharp.Core.dll use the
TargetFSharpCorePackageIdentity
property.TargetFSharpCoreVersion
For desktop versions, E.g. those who want to target FSharp.Core.4.3.0.0 e.t.c use the
TargetFSharpCoreVersion
property. This has no effect on netstandard or netcoreapp target builds.These proposals are implemented within the VisualFSharp repo in targets we deploy with the compiler, and so will not require coordination with the cli or sdk to implement.
The source files can be found here: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Build/Microsoft.FSharp.NetSdk.props
and here: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Build/Microsoft.FSharp.NetSdk.targets
A console app targeting multiple frameworks and the 4.4.0.0 fsharp.core
I hope this is satisfactory
Kevin
The text was updated successfully, but these errors were encountered: