diff --git a/FSharpBuild.Directory.Build.targets b/FSharpBuild.Directory.Build.targets
index ef7f82861c5..fa39d7498fd 100644
--- a/FSharpBuild.Directory.Build.targets
+++ b/FSharpBuild.Directory.Build.targets
@@ -34,6 +34,7 @@
+
diff --git a/FSharpTests.Directory.Build.props b/FSharpTests.Directory.Build.props
index d9fc35fc05d..46e9b6fb369 100644
--- a/FSharpTests.Directory.Build.props
+++ b/FSharpTests.Directory.Build.props
@@ -23,7 +23,7 @@
$(MSBuildThisFileDirectory)artifacts\toolset\dotnet
dotnet.exe
dotnet
- $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\netcoreapp2.0\fsi.exe
+ $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\netcoreapp2.1\fsi.exe
diff --git a/Makefile b/Makefile
index e402025e0ef..14a5b0a8c07 100644
--- a/Makefile
+++ b/Makefile
@@ -37,13 +37,13 @@ build: proto restore
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/fsc/fsc.fsproj
$(DotNetExe) build -c $(Configuration) -f netstandard1.6 src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
- $(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 src/fsharp/fsi/fsi.fsproj
+ $(DotNetExe) build -c $(Configuration) -f netcoreapp2.1 src/fsharp/fsi/fsi.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj
$(DotNetExe) build -c $(Configuration) -f netcoreapp2.0 tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
test: build
- $(DotNetExe) test -f netcoreapp2.0 -c $(Configuration) --no-restore --no-build tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Core.UnitTests.coreclr.trx"
- $(DotNetExe) test -f netcoreapp2.0 -c $(Configuration) --no-restore --no-build tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Build.UnitTests.coreclr.trx"
+ $(DotNetExe) test -f netcoreapp2.1 -c $(Configuration) --no-restore --no-build tests/FSharp.Core.UnitTests/FSharp.Core.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Core.UnitTests.coreclr.trx"
+ $(DotNetExe) test -f netcoreapp2.1 -c $(Configuration) --no-restore --no-build tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj -l "trx;LogFileName=$(CURDIR)/tests/TestResults/FSharp.Build.UnitTests.coreclr.trx"
clean:
rm -rf $(CURDIR)/artifacts
diff --git a/build.cmd b/build.cmd
index 389679d5ba4..2556b718f15 100644
--- a/build.cmd
+++ b/build.cmd
@@ -1,6 +1,5 @@
rem Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
@if "%_echo%"=="" echo off
-
setlocal enableDelayedExpansion
:ARGUMENTS_VALIDATION
@@ -66,6 +65,7 @@ set BUILD_FCS=0
set BUILD_CONFIG=Release
set BUILD_DIAG=
set BUILD_PUBLICSIGN=0
+set BUILD_FSHARP_PROJ=1
set TEST_NET40_COMPILERUNIT_SUITE=0
set TEST_NET40_COREUNIT_SUITE=0
@@ -464,10 +464,15 @@ if /i "%TEST_NET40_FSHARP_SUITE" == "1" (
)
rem Decide if Proto need building
-if NOT EXIST Proto\net40\bin\fsc.exe (
+if NOT EXIST "%~dp0artifacts\bin\fsc\Proto\net46\fsc.exe" (
set BUILD_PROTO=1
)
+rem decide if FSharp.Proj needs building
+if "%BUILD_NET40%"=="0" if "%BUILD_NET40_FSHARP_CORE%"=="0" if "%BUILD_CORECLR%"=="0" if "%BUILD_VS%"=="0" if "%BUILD_FCS%"=="0" if "%TEST_NET40_COMPILERUNIT_SUITE%"=="0" if "%TEST_NET40_COREUNIT_SUITE%"=="0" if "%TEST_NET40_FSHARP_SUITE%"=="0" if "%TEST_NET40_FSHARPQA_SUITE%"=="0" if "%TEST_CORECLR_COREUNIT_SUITE%"=="0" if "%TEST_CORECLR_FSHARP_SUITE%"=="0" if "%TEST_VS_IDEUNIT_SUITE%"=="0" if "%TEST_FCS%"=="0" if "%TEST_END_2_END%"=="0" if "%COPY_FSCOMP_RESOURCE_FOR_BUILD_FROM_SOURCES%"=="0" (
+ set BUILD_FSHARP_PROJ=0
+)
+
rem
rem This stops the dotnet cli from hunting around and
rem finding the highest possible dotnet sdk version to use.
@@ -483,7 +488,6 @@ echo BUILD_PROTO_WITH_CORECLR_LKG=%BUILD_PROTO_WITH_CORECLR_LKG%
echo BUILD_NET40=%BUILD_NET40%
echo BUILD_NET40_FSHARP_CORE=%BUILD_NET40_FSHARP_CORE%
echo BUILD_CORECLR=%BUILD_CORECLR%
-echo BUILD_FROMSOURCE=%BUILD_FROMSOURCE%
echo BUILD_VS=%BUILD_VS%
echo BUILD_FCS=%BUILD_FCS%
echo BUILD_SETUP=%BUILD_SETUP%
@@ -491,6 +495,8 @@ echo BUILD_NUGET=%BUILD_NUGET%
echo BUILD_CONFIG=%BUILD_CONFIG%
echo BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
echo BUILD_MICROBUILD=%BUILD_MICROBUILD%
+echo BUILD_FROMSOURCE=%BUILD_FROMSOURCE%
+echo BUILD_FSHARP_PROJ=%BUILD_FSHARP_PROJ%
echo.
echo PB_SKIPTESTS=%PB_SKIPTESTS%
echo PB_RESTORESOURCE=%PB_RESTORESOURCE%
@@ -665,7 +671,7 @@ if "%BUILD_PROTO%" == "1" (
echo ---------------- Done with SDK restore, starting build ------------------------
-if "%BUILD_PHASE%" == "1" (
+if "%BUILD_PHASE%" == "1" if "%BUILD_FSHARP_PROJ%" == "1" (
echo %_dotnetexe% restore fsharp.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\fsharp.proj.restore.binlog
%_dotnetexe% restore fsharp.proj /p:Configuration=%BUILD_CONFIG% /bl:!logdir!\fsharp.proj.restore.binlog
@@ -1072,6 +1078,7 @@ goto :success
REM ------ exit -------------------------------------
:failure
endlocal
+@echo
exit /b 1
:success
diff --git a/build/targets/NGenOrCrossGen.targets b/build/targets/NGenOrCrossGen.targets
new file mode 100644
index 00000000000..33dcaa3a63a
--- /dev/null
+++ b/build/targets/NGenOrCrossGen.targets
@@ -0,0 +1,36 @@
+
+
+
+
+ $(windir)\Microsoft.NET\Framework64\v4.0.30319\ngen.exe
+ $(windir)\Microsoft.NET\Framework\v4.0.30319\ngen.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ false
+
+
+
+
diff --git a/fsharp.proj b/fsharp.proj
index e695da391c9..59436e5a2e7 100644
--- a/fsharp.proj
+++ b/fsharp.proj
@@ -36,21 +36,50 @@
true
+
+
+ true
+ true
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+ TargetFramework=netstandard1.6
+ TargetFramework=net45
+
+
+ TargetFramework=netstandard2.0
+ TargetFramework=net46
+
+
+ TargetFramework=netstandard1.6
+ TargetFramework=net46
+
+
+ TargetFramework=net46
+
+
+ TargetFramework=netstandard1.6
+ TargetFramework=net46
+
+
+ TargetFramework=netcoreapp2.1
+ TargetFramework=net46
+
+
+ TargetFramework=netcoreapp2.1
+ TargetFramework=net46
+
+
+ TargetFramework=net46
+
@@ -70,6 +99,7 @@
+
diff --git a/proto.proj b/proto.proj
index c3a704496ee..0974580af5a 100644
--- a/proto.proj
+++ b/proto.proj
@@ -7,8 +7,14 @@
-
-
+
+ TargetFramework=net46
+ TargetFramework=netcoreapp2.1
+
+
+ TargetFramework=net46
+ TargetFramework=netcoreapp2.1
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
index 87ef49f5521..f10712a641e 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
+++ b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
@@ -55,14 +55,14 @@
-->
-
+
-
+
diff --git a/src/fsharp/fsc/fsc.fsproj b/src/fsharp/fsc/fsc.fsproj
index 4bc9770e9e0..40f56a0627e 100644
--- a/src/fsharp/fsc/fsc.fsproj
+++ b/src/fsharp/fsc/fsc.fsproj
@@ -12,6 +12,7 @@
$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
true
true
+ true
diff --git a/src/fsharp/fsi/fsi.fsproj b/src/fsharp/fsi/fsi.fsproj
index 6a4b7df15d5..5dbcac7557e 100644
--- a/src/fsharp/fsi/fsi.fsproj
+++ b/src/fsharp/fsi/fsi.fsproj
@@ -4,7 +4,7 @@
Exe
- net46;netcoreapp2.0
+ net46;netcoreapp2.1
.exe
fsi
$(NoWarn);45;55;62;75;1204
@@ -13,6 +13,7 @@
fsi.res
true
true
+ true
@@ -45,7 +46,7 @@
-
+
diff --git a/tests/fsharp/test-framework.fs b/tests/fsharp/test-framework.fs
index 85bc6319f19..85d462ffe47 100644
--- a/tests/fsharp/test-framework.fs
+++ b/tests/fsharp/test-framework.fs
@@ -164,7 +164,7 @@ let config configurationName envVars =
let fsharpCompilerInteractiveSettingsArchitecture = "net46"
#else
let fscArchitecture = "netcoreapp2.1"
- let fsiArchitecture = "netcoreapp2.0"
+ let fsiArchitecture = "netcoreapp2.1"
let fsharpCoreArchitecture = "netstandard1.6"
let fsharpBuildArchitecture = "netstandard2.0"
let fsharpCompilerInteractiveSettingsArchitecture = "netstandard1.6"