diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 95d0e129b88..c209fe60f05 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -15,7 +15,7 @@ ] }, "fake-cli": { - "version": "5.20.4", + "version": "5.21.0-alpha003", "commands": [ "fake" ] diff --git a/integrationtests/core-runtime-reference-assemblies-net60/before/global.json b/integrationtests/core-reference-assemblies-net60-preview/before/global.json similarity index 100% rename from integrationtests/core-runtime-reference-assemblies-net60/before/global.json rename to integrationtests/core-reference-assemblies-net60-preview/before/global.json diff --git a/integrationtests/core-runtime-reference-assemblies-net60/before/reference_fake-runtime.fsx b/integrationtests/core-reference-assemblies-net60-preview/before/reference-assemblies.fsx similarity index 100% rename from integrationtests/core-runtime-reference-assemblies-net60/before/reference_fake-runtime.fsx rename to integrationtests/core-reference-assemblies-net60-preview/before/reference-assemblies.fsx diff --git a/integrationtests/core-reference-assemblies-net60/before/global.json b/integrationtests/core-reference-assemblies-net60/before/global.json new file mode 100644 index 00000000000..5ab3721913d --- /dev/null +++ b/integrationtests/core-reference-assemblies-net60/before/global.json @@ -0,0 +1,5 @@ +{ + "sdk" : { + "version": "6.0.100" + } +} diff --git a/integrationtests/core-runtime-reference-assemblies-netstandard20/before/reference_fake-runtime.fsx b/integrationtests/core-reference-assemblies-net60/before/reference-assemblies.fsx similarity index 100% rename from integrationtests/core-runtime-reference-assemblies-netstandard20/before/reference_fake-runtime.fsx rename to integrationtests/core-reference-assemblies-net60/before/reference-assemblies.fsx diff --git a/integrationtests/core-runtime-reference-assemblies-netstandard20/before/global.json b/integrationtests/core-reference-assemblies-netstandard20/before/global.json similarity index 100% rename from integrationtests/core-runtime-reference-assemblies-netstandard20/before/global.json rename to integrationtests/core-reference-assemblies-netstandard20/before/global.json diff --git a/integrationtests/core-reference-assemblies-netstandard20/before/reference-assemblies.fsx b/integrationtests/core-reference-assemblies-netstandard20/before/reference-assemblies.fsx new file mode 100644 index 00000000000..72dc285b7c0 --- /dev/null +++ b/integrationtests/core-reference-assemblies-netstandard20/before/reference-assemblies.fsx @@ -0,0 +1,12 @@ +#r "paket: +storage: none +source https://api.nuget.org/v3/index.json +source ../../../release/dotnetcore +nuget Fake.Runtime prerelease +nuget FSharp.Core prerelease" + +open Fake.Runtime + +printfn "Starting Build." +Trace.traceFAKE "Some Info from FAKE" +printfn "Ending Build." diff --git a/paket.dependencies b/paket.dependencies index ca1931554a2..4d810ee1231 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -69,6 +69,7 @@ group netcorerunner storage: none nuget FSharp.Core + nuget Microsoft.Deployment.DotNet.Releases nuget Paket.Core nuget Mono.Cecil nuget Microsoft.NETCore.App framework: netstandard1.6, netstandard2.0, netcoreapp1.1 diff --git a/paket.lock b/paket.lock index ea598f25765..e438d2a59f1 100644 --- a/paket.lock +++ b/paket.lock @@ -2212,6 +2212,10 @@ NUGET System.Configuration.ConfigurationManager (>= 4.7) System.Security.Permissions (>= 4.7) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + Microsoft.Deployment.DotNet.Releases (1.0.0-preview2.6.21561.1) + Newtonsoft.Json (>= 13.0.1) + System.Net.Http (>= 4.3.4) + System.ValueTuple (>= 4.5) Microsoft.NET.StringTools (1.0) System.Memory (>= 4.5.4) System.Runtime.CompilerServices.Unsafe (>= 5.0) @@ -2226,8 +2230,8 @@ NUGET Newtonsoft.Json (>= 9.0.1) - restriction: || (&& (== net472) (>= netcoreapp1.0)) (&& (== net472) (>= uap10.0)) (== net6.0) (== netcoreapp2.1) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0)) Microsoft.VisualStudio.Setup.Configuration.Interop (1.16.30) - restriction: || (== net472) (&& (== net6.0) (>= net472)) (&& (== netcoreapp2.1) (>= net472)) (&& (== netstandard2.0) (>= net472)) Microsoft.Win32.Registry (5.0) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (>= monoandroid) (< netstandard1.3)) (&& (== net472) (>= monotouch)) (&& (== net472) (< net46)) (&& (== net472) (>= xamarinios)) (&& (== net472) (>= xamarinmac)) (&& (== net472) (>= xamarintvos)) (&& (== net472) (>= xamarinwatchos)) (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (>= monoandroid) (< netstandard1.3)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net472) (>= monoandroid) (< netstandard1.3)) (&& (== net472) (>= monotouch)) (&& (== net472) (< net46)) (&& (== net472) (>= xamarinios)) (&& (== net472) (>= xamarinmac)) (&& (== net472) (>= xamarintvos)) (&& (== net472) (>= xamarinwatchos)) (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (>= monoandroid) (< netstandard1.3)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) System.Security.AccessControl (>= 5.0) System.Security.Principal.Windows (>= 5.0) Microsoft.Win32.SystemEvents (5.0) - restriction: || (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) @@ -2340,7 +2344,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Globalization.Calendars (4.3) - restriction: || (&& (== net472) (< net45)) (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Globalization.Calendars (4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Globalization (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2377,10 +2381,10 @@ NUGET System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Memory (4.5.4) System.Buffers (>= 4.5.1) - restriction: || (== net472) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.1)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) - System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net45)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (== netstandard2.0) + System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net472) (< net45)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (== netstandard2.0) System.Numerics.Vectors (>= 4.5) - restriction: || (== net472) (&& (== net6.0) (>= net461)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netstandard2.0) (>= net461)) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (== net472) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.1)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) - System.Net.Http (4.3.4) - restriction: || (&& (== net472) (< net461)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Net.Http (4.3.4) Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System.Net.Http (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2423,7 +2427,7 @@ NUGET System.Reflection.Primitives (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Reflection.Emit (4.7) - restriction: || (&& (== net472) (< net461)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net45)) (&& (== net472) (< netstandard1.1)) (&& (== net472) (< netstandard2.0) (>= wpa81)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.1)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) + System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net472) (< net45)) (&& (== net472) (< netstandard1.1)) (&& (== net472) (< netstandard2.0) (>= wpa81)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.1)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net45)) (&& (== net472) (< netstandard1.1)) (&& (== net472) (< netstandard2.0) (>= wpa81)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.1)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) System.Reflection.Metadata (5.0) System.Collections.Immutable (>= 5.0) - restriction: || (== net472) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< net5.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (== netcoreapp2.1) (== netstandard2.0) @@ -2471,7 +2475,7 @@ NUGET System.Security.AccessControl (5.0) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp2.0)) (== net6.0) (== netcoreapp2.1) (&& (== netstandard2.0) (>= netcoreapp2.0)) System.Security.Principal.Windows (>= 5.0) - System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Security.Cryptography.Algorithms (4.3.1) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2488,7 +2492,7 @@ NUGET System.Text.Encoding (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Security.Cryptography.Cng (5.0) - restriction: || (&& (== net472) (>= net5.0)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Formats.Asn1 (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp3.0)) (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Security.Cryptography.Csp (4.3) - restriction: || (&& (== net472) (< net45)) (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Security.Cryptography.Csp (4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.IO (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Reflection (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2502,7 +2506,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Threading (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Security.Cryptography.Encoding (4.3) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Collections (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2518,9 +2522,9 @@ NUGET System.Security.Cryptography.OpenSsl (5.0) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Formats.Asn1 (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp3.0)) (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) System.Security.Cryptography.Pkcs (5.0.1) - restriction: || (&& (== net472) (>= net5.0)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net46)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (== netstandard2.0) - System.Formats.Asn1 (>= 5.0) - restriction: || (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (>= monoandroid) (< netstandard1.3)) (&& (== net472) (>= monotouch)) (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= netcoreapp3.0)) (&& (== net472) (>= netstandard2.1)) (&& (== net472) (>= uap10.1)) (&& (== net472) (>= xamarinios)) (&& (== net472) (>= xamarinmac)) (&& (== net472) (>= xamarintvos)) (&& (== net472) (>= xamarinwatchos)) (== net6.0) (&& (== netcoreapp2.1) (>= monoandroid) (< netstandard1.3)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net472) (< net46)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (== netstandard2.0) + System.Formats.Asn1 (>= 5.0) - restriction: || (&& (== net472) (>= monoandroid) (< netstandard1.3)) (&& (== net472) (>= monotouch)) (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= netcoreapp3.0)) (&& (== net472) (>= netstandard2.1)) (&& (== net472) (>= uap10.1)) (&& (== net472) (>= xamarinios)) (&& (== net472) (>= xamarinmac)) (&& (== net472) (>= xamarintvos)) (&& (== net472) (>= xamarinwatchos)) (== net6.0) (&& (== netcoreapp2.1) (>= monoandroid) (< netstandard1.3)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= uap10.1)) (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net6.0) (>= uap10.1)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard2.0) System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (== net472) (< net46)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= netcoreapp2.1)) (&& (== net472) (>= netcoreapp3.0)) (&& (== net472) (>= netstandard2.1)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2531,8 +2535,8 @@ NUGET System.Threading (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net46)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (== net472) (< net45)) (&& (== net472) (< net461)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (< net46)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) + System.Security.Cryptography.X509Certificates (4.3.2) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) runtime.native.System.Net.Http (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2559,14 +2563,14 @@ NUGET System.Text.Encoding (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Threading (>= 4.3) - restriction: || (&& (== net472) (< net46)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Security.Cryptography.Xml (5.0) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (== netcoreapp2.1)) (&& (== net472) (< net461)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net472) (< net461)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) System.Security.Cryptography.Pkcs (>= 5.0) - restriction: || (&& (== net472) (>= monoandroid) (< netstandard2.0)) (&& (== net472) (>= monotouch)) (&& (== net472) (< net461)) (&& (== net472) (>= netcoreapp2.1)) (&& (== net472) (>= xamarinios)) (&& (== net472) (>= xamarinmac)) (&& (== net472) (>= xamarintvos)) (&& (== net472) (>= xamarinwatchos)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Security.Permissions (>= 5.0) System.Security.Permissions (5.0) System.Security.AccessControl (>= 5.0) System.Windows.Extensions (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp3.0)) (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) System.Security.Principal.Windows (5.0) - restriction: || (== net6.0) (== netcoreapp2.1) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (&& (== net472) (== net6.0)) (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= netcoreapp2.1)) (&& (== net6.0) (== netstandard2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netcoreapp3.0)) (== netcoreapp2.1) (&& (== netstandard2.0) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.1)) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp2.0)) (&& (== net472) (>= netcoreapp2.1)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netcoreapp3.0)) (== netcoreapp2.1) (&& (== netstandard2.0) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.1)) System.Text.Encoding (4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) @@ -2582,7 +2586,7 @@ NUGET Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) (== netcoreapp2.1) (== netstandard2.0) System.Threading.Tasks.Dataflow (5.0) - System.ValueTuple (4.5) - restriction: || (== net472) (&& (== net6.0) (>= net461)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netstandard2.0) (>= net461)) + System.ValueTuple (4.5) System.Windows.Extensions (5.0) - restriction: || (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) System.Drawing.Common (>= 5.0) - restriction: || (&& (== net472) (>= netcoreapp3.0)) (== net6.0) (&& (== netcoreapp2.1) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) YoloDev.Expecto.TestSdk (0.8) diff --git a/src/app/Fake.DotNet.Cli/DotNet.fs b/src/app/Fake.DotNet.Cli/DotNet.fs index 8eb3d1ca94a..5963bb86605 100644 --- a/src/app/Fake.DotNet.Cli/DotNet.fs +++ b/src/app/Fake.DotNet.Cli/DotNet.fs @@ -230,6 +230,8 @@ module DotNet = DryRun: bool /// Do not update path variable NoPath: bool + /// Command working directory + WorkingDirectory: string } /// Parameter default values. @@ -243,6 +245,7 @@ module DotNet = DebugSymbols = false DryRun = false NoPath = true + WorkingDirectory = "." } /// The a list of well-known versions to install @@ -940,7 +943,7 @@ module DotNet = match checkVersion with | Some version -> let passVersion = if fromGlobalJson then None else Some version - withGlobalJson "." passVersion (fun () -> + withGlobalJson param.WorkingDirectory passVersion (fun () -> dotnetInstallations |> Seq.tryFind (fun dotnet -> try diff --git a/src/app/Fake.Runtime/CompileRunner.fs b/src/app/Fake.Runtime/CompileRunner.fs index 0fe180c867d..1d613d9bc79 100644 --- a/src/app/Fake.Runtime/CompileRunner.fs +++ b/src/app/Fake.Runtime/CompileRunner.fs @@ -124,7 +124,7 @@ let compile (context:FakeContext) outDll = let co = context.Config.CompileOptions let targetProfile = - if SdkAssemblyResolver().IsResolvedSdkVersionSameAsLTSVersion() + if SdkAssemblyResolver().IsSdkVersionFromGlobalJsonSameAsSdkVersion() then "--targetprofile:netcore" else "--targetprofile:netstandard" diff --git a/src/app/Fake.Runtime/FakeRuntime.fs b/src/app/Fake.Runtime/FakeRuntime.fs index bad490c949f..2ed400e1127 100644 --- a/src/app/Fake.Runtime/FakeRuntime.fs +++ b/src/app/Fake.Runtime/FakeRuntime.fs @@ -53,7 +53,7 @@ let paketCachingProvider (config:FakeConfig) cacheDir (paketApi:Paket.Dependenci #if DOTNETCORE let sdkAssemblyResolver = SdkAssemblyResolver() - let framework = sdkAssemblyResolver.SdkVersion + let framework = sdkAssemblyResolver.PaketFrameworkIdentifier let rid = Paket.Rid.Of(RuntimeInformation.RuntimeIdentifier) let ridNotVersionSpecific = let osShortName = diff --git a/src/app/Fake.Runtime/HashGeneration.fs b/src/app/Fake.Runtime/HashGeneration.fs index 6c4f688b7cf..8a7d5645ff7 100644 --- a/src/app/Fake.Runtime/HashGeneration.fs +++ b/src/app/Fake.Runtime/HashGeneration.fs @@ -112,7 +112,7 @@ let getStringHash (s:string) = let getCombinedString pathsAndContents compileOptions = let sb = new System.Text.StringBuilder() let inline appendSeq sequence = - for s in sequence do sb.AppendLine s |> ignore + for s:string in sequence do sb.AppendLine s |> ignore appendSeq (getAllScriptContents pathsAndContents) appendSeq (pathsAndContents |> Seq.map(fun x -> x.Location |> Path.normalizePath)) appendSeq compileOptions diff --git a/src/app/Fake.Runtime/SdkAssemblyResolver.fs b/src/app/Fake.Runtime/SdkAssemblyResolver.fs index 32758b3262c..0a687d94155 100644 --- a/src/app/Fake.Runtime/SdkAssemblyResolver.fs +++ b/src/app/Fake.Runtime/SdkAssemblyResolver.fs @@ -1,12 +1,12 @@ module Fake.Runtime.SdkAssemblyResolver open System.IO -open System.Runtime.InteropServices open Fake.Core open Fake.IO.FileSystemOperators open Fake.DotNet open Fake.Runtime open Paket +open Microsoft.Deployment.DotNet.Releases /// here we will pin Fake runner execution framework to .NET 6 as in `SdkVersion` /// We will also try to resolve the current SDK that the runner is executing, if it is the same as pinned @@ -15,17 +15,56 @@ open Paket /// package extract them a and reference them. type SdkAssemblyResolver() = #if DOTNETCORE + let CustomDotNetHostPath = Environment.environVarOrDefault "FAKE_SDK_RESOLVER_CUSTOM_DOTNET_PATH" "" - member this.SdkVersion = - Paket.FrameworkIdentifier.DotNetFramework Paket.FrameworkVersion.V6 + member this.SdkVersionRaw = "6.0" - member this.IsResolvedSdkVersionSameAsLTSVersion() = - match DotNet.tryGetSDKVersionFromGlobalJson () with - | Some version -> version.StartsWith "6" // this need to be kept in sync with SdkVersion number + member this.SdkVersion = ReleaseVersion("6.0.0") + + member this.PaketFrameworkIdentifier = + FrameworkIdentifier.DotNetFramework ( + FrameworkVersion.TryParse(this.SdkVersion.Major.ToString()).Value + ) + + member this.SdkVersionFromGlobalJson = DotNet.tryGetSDKVersionFromGlobalJson () + + member this.IsSdkVersionFromGlobalJsonSameAsSdkVersion() = + match this.SdkVersionFromGlobalJson with + | Some version -> ReleaseVersion(version).Major.Equals(this.SdkVersion.Major) | None -> false + member this.ResolveSdkRuntimeVersion() = + let resolvedSdkVersion = + this.SdkVersionFromGlobalJson + |> Option.get + |> ReleaseVersion + + let sdkVersionReleases = + ProductCollection.GetAsync() + |> Async.AwaitTask + |> Async.RunSynchronously + |> List.ofSeq + |> List.find (fun product -> product.ProductVersion.Equals(this.SdkVersionRaw)) + + let sdkVersionRelease = + sdkVersionReleases.GetReleasesAsync() + |> Async.AwaitTask + |> Async.RunSynchronously + |> List.ofSeq + |> List.tryFind + (fun release -> + release.Sdks + |> List.ofSeq + |> List.exists (fun sdk -> sdk.Version.Equals(resolvedSdkVersion))) + |> Option.orElseWith + (fun _ -> + failwithf "Could not find a sutable runtime version matching SDK version: %s" (resolvedSdkVersion.ToString())) + |> Option.get + + sdkVersionRelease.Runtime.Version.ToString() + member this.SdkReferenceAssemblies() = - let fileName = + let dotnetHost = match Environment.isUnix with | true -> "dotnet" | false -> "dotnet.exe" @@ -33,24 +72,32 @@ type SdkAssemblyResolver() = let userInstallDir = DotNet.defaultUserInstallDir let systemInstallDir = DotNet.defaultSystemInstallDir - let dotnet6ReferenceAssembliesPath = - match File.Exists(userInstallDir fileName) with - | true -> userInstallDir - | false -> systemInstallDir - - let dotnet6RuntimeVersion = - RuntimeInformation.FrameworkDescription.Replace(".NET ", "") + let dotnetHostPath = + if not(String.isNullOrEmpty CustomDotNetHostPath) + then CustomDotNetHostPath + else + match File.Exists(userInstallDir dotnetHost) with + | true -> userInstallDir + | false -> systemInstallDir - Directory.GetFiles( - dotnet6ReferenceAssembliesPath + let referenceAssembliesPath = + dotnetHostPath "packs" "Microsoft.NETCore.App.Ref" - dotnet6RuntimeVersion + this.ResolveSdkRuntimeVersion() "ref" - "net6.0", - "*.dll" - ) - |> Seq.toList + "net" + this.SdkVersionRaw + + Trace.traceVerbose <| sprintf "Resolved referenced SDK path: %s" referenceAssembliesPath + match Directory.Exists referenceAssembliesPath with + | true -> + Directory.GetFiles( + referenceAssembliesPath, + "*.dll" + ) + |> Seq.toList + | false -> + failwithf "Could not find referenced assemblies in path: '%s', please check installed SDK and runtime versions" referenceAssembliesPath member this.NetStandard20ReferenceAssemblies ( @@ -131,13 +178,15 @@ type SdkAssemblyResolver() = Directory.GetFiles(sdkDir, "*.dll") |> Seq.toList - member this.ResolveSdkReferenceAssemblies(groupName: Domain.GroupName, paketDependenciesFile: Lazy) = - // here we will match for .NET 6 sdk from a global.json file. If found we will use - // .NET 6 runtime assemblies. Otherwise we will default to .Netstandard 2.0.3 - match this.IsResolvedSdkVersionSameAsLTSVersion() with + member this.ResolveSdkReferenceAssemblies + ( + groupName: Domain.GroupName, + paketDependenciesFile: Lazy + ) = + match this.IsSdkVersionFromGlobalJsonSameAsSdkVersion() with | true -> Trace.traceVerbose - <| (sprintf "%s" "Using .Net 6 assemblies") + <| (sprintf "Using .Net %i assemblies" this.SdkVersion.Major) this.SdkReferenceAssemblies() | false -> @@ -151,6 +200,4 @@ type SdkAssemblyResolver() = groupName, paketDependenciesFile ) -#else - member this.IsSdkVersionDotNet6() = false #endif diff --git a/src/app/Fake.Runtime/paket.references b/src/app/Fake.Runtime/paket.references index 0c81b732dd6..3bcf3e485f4 100644 --- a/src/app/Fake.Runtime/paket.references +++ b/src/app/Fake.Runtime/paket.references @@ -1,6 +1,7 @@ group netcorerunner Paket.Core +nuget Microsoft.Deployment.DotNet.Releases Mono.Cecil FSharp.Core diff --git a/src/app/fake-cli/paket.references b/src/app/fake-cli/paket.references index daf2b64707a..a052774dcae 100644 --- a/src/app/fake-cli/paket.references +++ b/src/app/fake-cli/paket.references @@ -1,9 +1,8 @@ group netcorerunner FSharp.Core - Paket.Core Mono.Cecil Microsoft.NETCore.App NETStandard.Library - -Packaging.Targets +Packaging.Targets +Microsoft.Deployment.DotNet.Releases \ No newline at end of file diff --git a/src/test/Fake.Core.IntegrationTests/Fake.DotNet.sdkAssemblyResolver.fs b/src/test/Fake.Core.IntegrationTests/Fake.DotNet.sdkAssemblyResolver.fs index b46d3ed8a15..ff0eaf92be0 100644 --- a/src/test/Fake.Core.IntegrationTests/Fake.DotNet.sdkAssemblyResolver.fs +++ b/src/test/Fake.Core.IntegrationTests/Fake.DotNet.sdkAssemblyResolver.fs @@ -8,21 +8,16 @@ open System.IO open Fake.IO.FileSystemOperators open Expecto open Fake.Core.IntegrationTests.TestHelpers +open Fake.Runtime [] let tests = testList - "Fake.DotNet.sdkAssemblyResolverTests" - [ testCase "Runner run script with NETStandard2.0 SDK assemblies" - <| fun _ -> + "Fake.DotNet.sdkAssemblyResolverTests" [ + testCase "Runner run script with NETStandard2.0 SDK assemblies" <| fun _ -> let result = - handleAndFormat - <| fun _ -> - fakeRunAndCheck - Ctx.Verbose - "reference_fake-runtime.fsx" - "reference_fake-runtime.fsx" - "core-runtime-reference-assemblies-netstandard20" + handleAndFormat <| fun _ -> + fakeRunAndCheck Ctx.Verbose "reference-assemblies.fsx" "reference-assemblies.fsx" "core-reference-assemblies-netstandard20" let stdOut = String.Join("\n", result.Messages).Trim() @@ -36,26 +31,78 @@ let tests = (sprintf "stdout should contain '%s', but was: '%s'" expectedNetStandardPathPortion stdOut) |> Expect.isTrue (stdOut.Contains expectedNetStandardPathPortion) - testCase "Runner run script with .Net6 SDK assemblies" - <| fun _ -> - let result = - handleAndFormat - <| fun _ -> - fakeRunAndCheck - Ctx.Verbose - "reference_fake-runtime.fsx" - "reference_fake-runtime.fsx" - "core-runtime-reference-assemblies-net60" + testCase "Runner run script with 6.0.100-preview.3.21202.5 SDK version assemblies" <| fun _ -> + try + use d = createTestDir() + let installerDir = Path.Combine(d.Dir, "Temp Dir") + Directory.create installerDir + let preparedDir = Path.Combine(d.Dir, "Install Dir") + Directory.create preparedDir - let stdOut = - String.Join("\n", result.Messages).Trim() + DotNet.install (fun option -> + { option with + InstallerOptions = fun o -> + { option.InstallerOptions o with + CustomDownloadDir = Some installerDir } + ForceInstall = true + WorkingDirectory = scenarioTempPath "core-reference-assemblies-net60-preview" + CustomInstallDir = Some preparedDir + Channel = DotNet.CliChannel.Version 6 0 + Version = DotNet.CliVersion.Version "6.0.100-preview.3.21202.5" }) + |> ignore + + Environment.setEnvironVar "FAKE_SDK_RESOLVER_CUSTOM_DOTNET_PATH" preparedDir + + let result = + handleAndFormat <| fun _ -> + fakeRunAndCheck Ctx.Verbose "reference-assemblies.fsx" "reference-assemblies.fsx" "core-reference-assemblies-net60-preview" + + let stdOut = + String.Join("\n", result.Messages).Trim() + + let expectedNet6PathPortion = "packs""Microsoft.NETCore.App.Ref""6.0.0-preview.3.21201.4""ref""net6.0" + + (sprintf "stdout should contain path like '%s', but was: '%s'" expectedNet6PathPortion stdOut) + |> Expect.isTrue (stdOut.Contains expectedNet6PathPortion) + finally + // clean up after the test run + Environment.setEnvironVar "FAKE_SDK_RESOLVER_CUSTOM_DOTNET_PATH" "" + + testCase "Runner run script with 6.0.100 SDK version assemblies" <| fun _ -> + try + use d = createTestDir() + let installerDir = Path.Combine(d.Dir, "Temp Dir") + Directory.create installerDir + let preparedDir = Path.Combine(d.Dir, "Install Dir") + Directory.create preparedDir + + DotNet.install (fun option -> + { option with + InstallerOptions = fun o -> + { option.InstallerOptions o with + CustomDownloadDir = Some installerDir } + ForceInstall = true + WorkingDirectory = scenarioTempPath "core-reference-assemblies-net60" + CustomInstallDir = Some preparedDir + Channel = DotNet.CliChannel.Version 6 0 + Version = DotNet.CliVersion.Version "6.0.100" }) + |> ignore + + Environment.setEnvironVar "FAKE_SDK_RESOLVER_CUSTOM_DOTNET_PATH" preparedDir + + let result = + handleAndFormat <| fun _ -> + fakeRunAndCheck Ctx.Verbose "reference-assemblies.fsx" "reference-assemblies.fsx" "core-reference-assemblies-net60" + + let stdOut = + String.Join("\n", result.Messages).Trim() + + let expectedNet6PathPortion = "packs""Microsoft.NETCore.App.Ref""6.0.0""ref""net6.0" - // the * is for runtime version - let expectedNet6PathPortion = - "[\s\S]*[\/|\\\\]packs[\/|\\\\]Microsoft[\/.|\\\\.]NETCore[\/.|\\\\.]App[\/.|\\\\.]Ref[\/|\\\\][\s\S]*[\/|\\\\]ref[\/|\\\\]net6[\/.|\\\\.]0[\/|\\\\]*" + (sprintf "stdout should contain path like '%s', but was: '%s'" expectedNet6PathPortion stdOut) + |> Expect.isTrue (stdOut.Contains expectedNet6PathPortion) + finally + // clean up after the test run + Environment.setEnvironVar "FAKE_SDK_RESOLVER_CUSTOM_DOTNET_PATH" "" - (sprintf - "stdout should contain path like '%s', but was: '%s'" - "packs/Microsoft.NETCore.App.Ref/*/ref/net6.0" - stdOut) - |> Expect.isTrue (Regex.IsMatch(stdOut, expectedNet6PathPortion)) ] + ]