From c7165ebee3372fc2905b168434093f8e625afd5c Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Mon, 24 Sep 2018 19:04:31 +0200 Subject: [PATCH 01/17] next --- RELEASE_NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 21f127c8bf2..abc06698f4d 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,9 @@ # Release Notes +## 5.7.3-alpha + +* tbd + ## 5.7.2 - 2018-09-24 * ENHANCEMENT: TeamFoundation now reports errors as errors instead of warnings - https://github.com/fsharp/FAKE/pull/2103 From 0d6424e7f7e9a891ec431e19dee4c21d2e9e3598 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Mon, 24 Sep 2018 20:58:49 +0200 Subject: [PATCH 02/17] test hook --- build.fsx | 1 - 1 file changed, 1 deletion(-) diff --git a/build.fsx b/build.fsx index cb406a23320..fe6523c0a2f 100644 --- a/build.fsx +++ b/build.fsx @@ -844,7 +844,6 @@ Target.create "DotNetCoreCreateDebianPackage" (fun _ -> publish target ) - let rec nugetPush tries nugetpackage = let ignore_conflict = Environment.environVar "IGNORE_CONFLICT" = "true" try From aa803f5f1331791e6f263d58eaa74c06b6667dce Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Mon, 24 Sep 2018 21:21:11 +0200 Subject: [PATCH 03/17] update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 83c6c57b0fb..9af0c6baf07 100644 --- a/.gitignore +++ b/.gitignore @@ -78,6 +78,8 @@ project.lock.json #src/app/*/any +/fake-dotnetcore +/fake-dotnetcore*.zip /testbuild.fsx /testbuild.fsx.lock /src/legacy/deploy.web/Fake.Deploy.Web/App_Data/Providers/**/*.dll From 726dd226ea84c78522402a7c7d56e48d41c4af9c Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Mon, 24 Sep 2018 22:51:27 +0200 Subject: [PATCH 04/17] use global version --- .../TemplateTests.fs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs index 6e5e15ade7c..8298c18889a 100644 --- a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs +++ b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs @@ -14,11 +14,19 @@ let templateName = "fake" //TODO: add DotNetCli helpers for the `new` command +let dotnetSdk = lazy DotNet.install DotNet.Versions.FromGlobalJson + +let inline opts () = DotNet.Options.lift dotnetSdk.Value + +let inline dtntWorkDir wd = + DotNet.Options.lift dotnetSdk.Value + >> DotNet.Options.withWorkingDirectory wd + let uninstallTemplate () = - DotNet.exec id "new" (sprintf "-u %s" templatePackageName) + DotNet.exec (opts()) "new" (sprintf "-u %s" templatePackageName) let installTemplateFrom pathToNupkg = - DotNet.exec id "new" (sprintf "-i %s" pathToNupkg) + DotNet.exec (opts()) "new" (sprintf "-i %s" pathToNupkg) type BootstrapKind = | Tool @@ -33,9 +41,7 @@ let timeout = (System.TimeSpan.FromMinutes 10.) let runTemplate rootDir kind = Directory.ensure rootDir - DotNet.exec - ( fun o -> - { o with WorkingDirectory = rootDir; } ) "new" (sprintf "%s --allow-scripts yes --version 5.3.0 --bootstrap %s" templateName (string kind)) + DotNet.exec (dtntWorkDir rootDir) "new" (sprintf "%s --allow-scripts yes --version 5.3.0 --bootstrap %s" templateName (string kind)) |> shouldSucceed "should have run the template successfully" let invokeScript dir scriptName args = From 2206d3d75a29bbff4a131541a40ab551eda11205 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Tue, 25 Sep 2018 18:10:07 +0200 Subject: [PATCH 05/17] Allow trace to work when no fake context is set --- src/app/Fake.Core.FakeVar/FakeVar.fs | 93 +++++++++++++++++------- src/app/Fake.Core.Trace/TraceListener.fs | 2 +- 2 files changed, 68 insertions(+), 27 deletions(-) diff --git a/src/app/Fake.Core.FakeVar/FakeVar.fs b/src/app/Fake.Core.FakeVar/FakeVar.fs index 9e8bd59a87f..4e7a01b35e2 100644 --- a/src/app/Fake.Core.FakeVar/FakeVar.fs +++ b/src/app/Fake.Core.FakeVar/FakeVar.fs @@ -4,15 +4,20 @@ module Fake.Core.FakeVar open Fake.Core.Context +let internal getFrom<'a> name context = + context + |> getFakeContext name + |> Option.map (fun o -> + try + o :?> 'a + with e -> + raise <| exn(sprintf "Cast error on variable '%s'" name, e)) + + /// Gets a strongly typed FakeVar by name returning an option type let get<'a> name = forceFakeContext() - |> getFakeContext name - |> Option.map (fun o -> try - o :?> 'a - with e -> - raise <| exn(sprintf "Cast error on variable '%s'" name, e) - ) + |> getFrom<'a> name /// Gets a strongly typed FakeVar by name will fail if variable is not found let getOrFail<'a> name = @@ -26,37 +31,73 @@ let getOrDefault<'a> name defaultValue = | Some v -> v | _ -> defaultValue +/// Removes a FakeVar by name +let internal removeFrom name context = + context + |> removeFakeContext name + |> ignore + /// Removes a FakeVar by name let remove name = forceFakeContext() - |> removeFakeContext name + |> removeFrom name + +/// Sets value of a FakeVar +let internal setFrom name (v:'a) context = + context + |> setFakeContext name v (fun _ -> v :> obj) |> ignore /// Sets value of a FakeVar let set name (v:'a) = forceFakeContext() - |> setFakeContext name v (fun _ -> v :> obj) - |> ignore + |> setFrom name v /// Define a named FakeVar providing the get, remove and set -/// Will fail if there is no context +/// And of the functions will fail if there is no context let define<'a> name = - if isFakeContext() then - (fun () -> get name : 'a option), - (fun () -> remove name), - (fun (v : 'a) -> set name v) - else - failwithf "Cannot define variable '%s' without context" name + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> getFrom name context : 'a option + | _ -> failwithf "Cannot retrieve '%s' as we have no fake context" name), + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> removeFrom name context + | _ -> failwithf "Cannot remove '%s' as we have no fake context" name), + (fun (v : 'a) -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> setFrom name v context + | _ -> failwithf "Cannot set '%s' as we have no fake context" name) /// Define a named FakeVar providing the get, remove and set -/// Will create a local variable if there is no context +/// Will use a local variable if there is no context let defineAllowNoContext<'a> name = - if isFakeContext() then - (fun () -> get name : 'a option), - (fun () -> remove name), - (fun (v : 'a) -> set name v) - else - let mutable varWithoutContext = None - (fun () -> varWithoutContext), - (fun () -> varWithoutContext <- None), - (fun (v : 'a) -> varWithoutContext <- Some v) + let mutable varWithoutContext = None + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> getFrom name context : 'a option + | _ -> varWithoutContext), + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> removeFrom name context + | _ -> varWithoutContext <- None), + (fun (v : 'a) -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> setFrom name v context + | _ -> varWithoutContext <- Some v) + +/// Define a named FakeVar providing the get, remove and set +/// Will always return 'None' when no context is set and 'throw' on set +let defineOrNone<'a> name = + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> getFrom name context : 'a option + | _ -> None), + (fun () -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> removeFrom name context + | _ -> failwithf "Cannot remove '%s' as we have no fake context" name), + (fun (v : 'a) -> + match getExecutionContext() |> getFakeExecutionContext with + | Some context -> setFrom name v context + | _ -> failwithf "Cannot set '%s' as we have no fake context" name) \ No newline at end of file diff --git a/src/app/Fake.Core.Trace/TraceListener.fs b/src/app/Fake.Core.Trace/TraceListener.fs index 678b86f0a78..147be3080dd 100644 --- a/src/app/Fake.Core.Trace/TraceListener.fs +++ b/src/app/Fake.Core.Trace/TraceListener.fs @@ -299,7 +299,7 @@ type TraceSecret = module TraceSecrets = let private traceSecretsVar = "Fake.Core.Trace.TraceSecrets" let private getTraceSecrets, _, (setTraceSecrets:TraceSecret list -> unit) = - Fake.Core.FakeVar.define traceSecretsVar + Fake.Core.FakeVar.defineOrNone traceSecretsVar let getAll () = match getTraceSecrets() with From 0c0ad7ae5bf0a137071bc094bd3c19e0889357b4 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Tue, 25 Sep 2018 18:42:38 +0200 Subject: [PATCH 06/17] allow to work without context --- src/app/Fake.Core.Trace/TraceListener.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/Fake.Core.Trace/TraceListener.fs b/src/app/Fake.Core.Trace/TraceListener.fs index 147be3080dd..97cf9f8cbac 100644 --- a/src/app/Fake.Core.Trace/TraceListener.fs +++ b/src/app/Fake.Core.Trace/TraceListener.fs @@ -331,7 +331,7 @@ module CoreTracing = let private traceListenersVar = "Fake.Core.Trace.TraceListeners" let private getTraceListeners, _, (setTraceListenersPrivate:ITraceListener list -> unit) = - Fake.Core.FakeVar.define traceListenersVar + Fake.Core.FakeVar.defineOrNone traceListenersVar let areListenersSet () = match getTraceListeners() with From f1333d4a4ec26dc74e07322092583bd5ae33931c Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Tue, 25 Sep 2018 19:23:35 +0200 Subject: [PATCH 07/17] fix test --- src/test/Fake.Core.UnitTests/Fake.Core.FakeVar.fs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/Fake.Core.UnitTests/Fake.Core.FakeVar.fs b/src/test/Fake.Core.UnitTests/Fake.Core.FakeVar.fs index 75d106967f7..e939e01c4eb 100644 --- a/src/test/Fake.Core.UnitTests/Fake.Core.FakeVar.fs +++ b/src/test/Fake.Core.UnitTests/Fake.Core.FakeVar.fs @@ -69,9 +69,10 @@ let tests = Expect.equal "TestValue" value.Value "Variable 'Test' is incorrect" testCase "Ability to define variable with no context when context required" <| fun _ -> + let myGet, _, _ = FakeVar.define "Test" try - let _, _, _ = FakeVar.define "Test" + myGet() |> ignore Tests.failtest "Expected exception" with e -> - Expect.equal "Cannot define variable 'Test' without context" e.Message "Incorrect failure message for variable failure case" + Expect.equal "Cannot retrieve 'Test' as we have no fake context" e.Message "Incorrect failure message for variable failure case" ] From 336abd7a4819e8991bce0445fedd415d944cbf86 Mon Sep 17 00:00:00 2001 From: gfritz Date: Tue, 25 Sep 2018 14:25:20 -0400 Subject: [PATCH 08/17] port sql server fake4 module to fake5 - rebase on older good commit aa803f5 --- Fake.sln | 15 ++ help/literate/templates/template-project.html | 3 + help/markdown/help-docs.md | 1 + help/markdown/sql-sqlserver.md | 24 +++ help/templates/template.cshtml | 1 + paket.dependencies | 2 + paket.lock | 170 +++++++++++++++--- src/app/Fake.Sql.SqlServer/AssemblyInfo.fs | 17 ++ .../Fake.Sql.SqlServer.fsproj | 24 +++ src/app/Fake.Sql.SqlServer/Sql.SqlServer.fs | 170 ++++++++++++++++++ src/app/Fake.Sql.SqlServer/paket.references | 7 + src/legacy/Fake.SQL/SQLServer.fs | 46 ++--- 12 files changed, 435 insertions(+), 45 deletions(-) create mode 100644 help/markdown/sql-sqlserver.md create mode 100644 src/app/Fake.Sql.SqlServer/AssemblyInfo.fs create mode 100644 src/app/Fake.Sql.SqlServer/Fake.Sql.SqlServer.fsproj create mode 100644 src/app/Fake.Sql.SqlServer/Sql.SqlServer.fs create mode 100644 src/app/Fake.Sql.SqlServer/paket.references diff --git a/Fake.sln b/Fake.sln index be03269ca1d..74d6c0d12c1 100644 --- a/Fake.sln +++ b/Fake.sln @@ -172,6 +172,8 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fake.Core.Vault", "src\app\ EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fake.Installer.Squirrel", "src\app\Fake.Installer.Squirrel\Fake.Installer.Squirrel.fsproj", "{3DEF2E95-4BF8-413F-930E-32103A39364A}" EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fake.Sql.SqlServer", "src\app\Fake.Sql.SqlServer\Fake.Sql.SqlServer.fsproj", "{2EEAD673-45BE-4836-90B4-CF545877ACB9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1070,6 +1072,18 @@ Global {3DEF2E95-4BF8-413F-930E-32103A39364A}.Release|x64.Build.0 = Release|Any CPU {3DEF2E95-4BF8-413F-930E-32103A39364A}.Release|x86.ActiveCfg = Release|Any CPU {3DEF2E95-4BF8-413F-930E-32103A39364A}.Release|x86.Build.0 = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|x64.ActiveCfg = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|x64.Build.0 = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|x86.ActiveCfg = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Debug|x86.Build.0 = Debug|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|Any CPU.Build.0 = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|x64.ActiveCfg = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|x64.Build.0 = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|x86.ActiveCfg = Release|Any CPU + {2EEAD673-45BE-4836-90B4-CF545877ACB9}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1151,6 +1165,7 @@ Global {F1641150-B89D-40B7-A3BE-9DC357410FDA} = {7BFFAE76-DEE9-417A-A79B-6A6644C4553A} {AAAF92C5-C40D-40B8-84BA-137DF0E98B56} = {901F162F-8925-4390-89C5-9EE2C343F744} {3DEF2E95-4BF8-413F-930E-32103A39364A} = {901F162F-8925-4390-89C5-9EE2C343F744} + {2EEAD673-45BE-4836-90B4-CF545877ACB9} = {7BFFAE76-DEE9-417A-A79B-6A6644C4553A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {058A0C5E-2216-4306-8AFB-0AE28320C26A} diff --git a/help/literate/templates/template-project.html b/help/literate/templates/template-project.html index 5d3c460a934..6e3b2649e8d 100644 --- a/help/literate/templates/template-project.html +++ b/help/literate/templates/template-project.html @@ -133,6 +133,9 @@

{project-name}

  • SQL DACPAC support
  • +
  • + SQL Server support +
  • FluentMigrator support
  • diff --git a/help/markdown/help-docs.md b/help/markdown/help-docs.md index ea407f1ab3c..7bf2886ebef 100644 --- a/help/markdown/help-docs.md +++ b/help/markdown/help-docs.md @@ -48,6 +48,7 @@ Here is the old sidebar: * [Azure WebJobs support](azurewebjobs.html) * [Azure Cloud Services support](azurecloudservices.html) * [SQL DACPAC support](dacpac.html) +* [SQL Server support](sqlserver.html) * [FluentMigrator support](fluentmigrator.html) * [Android publisher](androidpublisher.html) * [File Watcher](watch.html) diff --git a/help/markdown/sql-sqlserver.md b/help/markdown/sql-sqlserver.md new file mode 100644 index 00000000000..019c9073ac8 --- /dev/null +++ b/help/markdown/sql-sqlserver.md @@ -0,0 +1,24 @@ +# Interacting with SQL Server Databases + +
    +
    INFO
    +

    This documentation is for FAKE version 5.0 or later. The old documentation can be found here

    +
    + +FAKE can be used to create, delete, and run scripts against a SQL Server database. + +## Sample Usage + +You need to have some edition of SQL Server installed on the machine running these tasks. Choose an edition from the [Microsoft SQL Server Downloads page](https://www.microsoft.com/en-us/sql-server/sql-server-downloads). + + open Fake.Sql + + Target.create "CreateIntegrationTestsDatabase" (fun _ -> + let connectionString = "Data Source=.;Initial Catalog=DATABASE_NAME;Integrated Security=True;" + SqlServer.dropAndCreateDatabase connectionString + + let scripts = [ "path/to/create/tables.sql"; "path/to/seed/data.sql" ] + |> Seq.ofList + + SqlServer.runScripts connectionString scripts + ) \ No newline at end of file diff --git a/help/templates/template.cshtml b/help/templates/template.cshtml index 8b98ce302ae..24da3ed7276 100644 --- a/help/templates/template.cshtml +++ b/help/templates/template.cshtml @@ -186,6 +186,7 @@ Sql
  • diff --git a/paket.dependencies b/paket.dependencies index f3b58e63d70..48b476eb26b 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -198,4 +198,6 @@ group netcore nuget System.IO.Compression.ZipFile nuget System.Runtime.Loader nuget System.IO.FileSystem.Watcher + nuget System.Data.SqlClient + nuget Microsoft.SqlServer.SqlManagementObjects diff --git a/paket.lock b/paket.lock index ba75c8db91f..ac3a6916d44 100644 --- a/paket.lock +++ b/paket.lock @@ -2028,13 +2028,14 @@ NUGET Microsoft.NETCore.App (2.1.4) - restriction: || (&& (== net46) (== netcoreapp1.1)) (&& (== net462) (== netcoreapp1.1)) (&& (== netcoreapp1.1) (== netcoreapp2.0)) (&& (== netcoreapp1.1) (== netcoreapp2.1)) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (2.1.1) Microsoft.NETCore.Targets (2.1) - restriction: || (&& (== net46) (== net462) (>= netstandard1.6) (>= uap10.0)) (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + Microsoft.SqlServer.SqlManagementObjects (140.17283) + System.Data.SqlClient (>= 4.4) - restriction: || (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.0)) Microsoft.VisualStudio.Setup.Configuration.Interop (1.16.30) - restriction: || (== net46) (== net462) (&& (== netcoreapp2.0) (>= net46)) (&& (== netcoreapp2.1) (>= net46)) (&& (== netstandard1.6) (>= net46)) (&& (== netstandard2.0) (>= net46)) - Microsoft.Win32.Primitives (4.3) - restriction: || (== net46) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + Microsoft.Win32.Primitives (4.3) - restriction: || (== net46) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (&& (== net462) (< net46)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - Microsoft.Win32.Registry (4.5) - restriction: || (&& (== net46) (>= netcoreapp2.1)) (&& (== net462) (< net46)) (&& (== net462) (>= netcoreapp2.1)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - NETStandard.Library (>= 1.6.1) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + Microsoft.Win32.Registry (4.5) - restriction: || (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (< net46)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Buffers (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (>= monoandroid)) (&& (== net46) (>= monotouch)) (&& (== net46) (>= xamarinios)) (&& (== net46) (>= xamarinmac)) (&& (== net46) (>= xamarintvos)) (&& (== net46) (>= xamarinwatchos)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (>= monoandroid)) (&& (== net462) (>= monotouch)) (&& (== net462) (< net46) (>= netstandard2.0)) (&& (== net462) (>= xamarinios)) (&& (== net462) (>= xamarinmac)) (&& (== net462) (>= xamarintvos)) (&& (== net462) (>= xamarinwatchos)) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.0) (>= monoandroid)) (&& (== netcoreapp2.0) (>= monotouch)) (&& (== netcoreapp2.0) (>= xamarinios)) (&& (== netcoreapp2.0) (>= xamarinmac)) (&& (== netcoreapp2.0) (>= xamarintvos)) (&& (== netcoreapp2.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (>= monoandroid)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (&& (== netstandard1.6) (>= monoandroid)) (&& (== netstandard1.6) (>= monotouch)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= xamarinios)) (&& (== netstandard1.6) (>= xamarinmac)) (&& (== netstandard1.6) (>= xamarintvos)) (&& (== netstandard1.6) (>= xamarinwatchos)) (== netstandard2.0) System.Memory (>= 4.5) - restriction: || (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (&& (== net462) (< net46) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= uap10.1)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) System.Security.AccessControl (>= 4.5) - restriction: || (&& (== net46) (>= monoandroid)) (&& (== net46) (>= monotouch)) (&& (== net46) (>= net461)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= xamarinios)) (&& (== net46) (>= xamarinmac)) (&& (== net46) (>= xamarintvos)) (&& (== net46) (>= xamarinwatchos)) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= monoandroid)) (&& (== netstandard1.6) (>= monotouch)) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= xamarinios)) (&& (== netstandard1.6) (>= xamarinmac)) (&& (== netstandard1.6) (>= xamarintvos)) (&& (== netstandard1.6) (>= xamarinwatchos)) (== netstandard2.0) @@ -2129,12 +2130,19 @@ NUGET runtime.native.System (4.3.1) - restriction: || (&& (== net46) (== net462) (>= netstandard1.6) (>= uap10.0)) (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Data.SqlClient.sni (4.5) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.win-arm64.runtime.native.System.Data.SqlClient.sni (>= 4.4) + runtime.win-x64.runtime.native.System.Data.SqlClient.sni (>= 4.4) + runtime.win-x86.runtime.native.System.Data.SqlClient.sni (>= 4.4) runtime.native.System.IO.Compression (4.3.2) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) runtime.native.System.Net.Http (4.3.1) - restriction: || (&& (== net46) (== net462) (>= netstandard1.6) (>= uap10.0)) (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Security (4.3.1) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451) (>= netstandard1.6)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451) (>= netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net46) (== net462) (>= netstandard1.6) (>= uap10.0)) (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< net46) (>= netstandard1.6)) (&& (== net462) (< netstandard1.5) (>= netstandard1.6) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2163,14 +2171,12 @@ NUGET runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.win-arm64.runtime.native.System.Data.SqlClient.sni (4.4) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.win-x64.runtime.native.System.Data.SqlClient.sni (4.4) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.win-x86.runtime.native.System.Data.SqlClient.sni (4.4) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.AppContext (4.3) - restriction: || (== net46) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Buffers (4.5) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (>= monoandroid) (>= netstandard2.0)) (&& (== net46) (>= monotouch) (>= netstandard2.0)) (&& (== net46) (< net45)) (&& (== net46) (>= netstandard2.0) (>= xamarinios)) (&& (== net46) (>= netstandard2.0) (>= xamarinmac)) (&& (== net46) (>= netstandard2.0) (>= xamarintvos)) (&& (== net46) (>= netstandard2.0) (>= xamarinwatchos)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (>= monoandroid) (>= netstandard2.0)) (&& (== net462) (>= monotouch) (>= netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (>= netstandard2.0) (>= xamarinios)) (&& (== net462) (>= netstandard2.0) (>= xamarinmac)) (&& (== net462) (>= netstandard2.0) (>= xamarintvos)) (&& (== net462) (>= netstandard2.0) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) - System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) - System.Runtime (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) - System.Threading (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Buffers (4.5) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< net451)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.CodeDom (4.5) - restriction: || (&& (== net462) (< net46) (>= netstandard2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Collections (4.3) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (< net45)) (&& (== net462) (< net46) (>= netstandard1.6)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2234,11 +2240,40 @@ NUGET System.IO (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Text.Encoding (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Data.Common (4.3) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== net462) (< net461)) (&& (== net462) (< netstandard1.2)) (&& (== net462) (< netstandard1.3)) (&& (== net462) (>= win81)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) + System.Collections (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Globalization (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Text.RegularExpressions (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Data.SqlClient (4.5.1) + Microsoft.Win32.Registry (>= 4.5) - restriction: || (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + NETStandard.Library (>= 1.6.1) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.3)) + runtime.native.System.Data.SqlClient.sni (>= 4.4) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Buffers (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Data.Common (>= 4.3) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== net462) (< net461)) (&& (== net462) (< netstandard1.2)) (&& (== net462) (< netstandard1.3)) (&& (== net462) (>= win81)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) + System.Diagnostics.DiagnosticSource (>= 4.4.1) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Diagnostics.DiagnosticSource (>= 4.5) - restriction: || (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= uap10.1)) (== netcoreapp2.0) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) + System.IO.Pipes (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Memory (>= 4.5.1) - restriction: || (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= uap10.1)) (== netcoreapp2.0) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) + System.Net.NameResolution (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Net.Security (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Reflection.TypeExtensions (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Security.Principal (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Security.Principal.Windows (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Security.Principal.Windows (>= 4.5) - restriction: || (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Text.Encoding.CodePages (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Text.Encoding.CodePages (>= 4.5) - restriction: || (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Threading.Thread (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Threading.ThreadPool (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) System.Diagnostics.Debug (4.3) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Diagnostics.DiagnosticSource (4.5) - restriction: || (&& (== net46) (== net462) (>= uap10.0)) (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (>= dnxcore50)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= dnxcore50)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (>= dnxcore50)) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) + System.Diagnostics.DiagnosticSource (4.5) - restriction: || (&& (== net46) (== net462) (>= uap10.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (>= uap10.1)) (== netcoreapp2.0) (&& (== netcoreapp2.1) (>= dnxcore50)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (== netstandard1.6) (== netstandard2.0) System.Collections (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.3)) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.3)) @@ -2387,6 +2422,26 @@ NUGET System.Threading.Overlapped (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Thread (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO.Pipes (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.native.System (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Buffers (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO.FileSystem.Primitives (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Net.Primitives (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Net.Sockets (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Reflection (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Principal (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Text.Encoding (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Overlapped (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Linq (4.3) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Collections (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2431,7 +2486,7 @@ NUGET System.Reflection.Extensions (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Memory (4.5.1) - restriction: || (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= netstandard2.0) (>= uap10.1)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= netstandard2.0) (>= uap10.1)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Memory (4.5.1) - restriction: || (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= uap10.1)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) System.Buffers (>= 4.4) - restriction: || (== net46) (== net462) (&& (== netcoreapp2.0) (>= monoandroid)) (&& (== netcoreapp2.0) (>= monotouch)) (&& (== netcoreapp2.0) (>= net461)) (&& (== netcoreapp2.0) (< netstandard1.1)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.0) (>= xamarinios)) (&& (== netcoreapp2.0) (>= xamarinmac)) (&& (== netcoreapp2.0) (>= xamarintvos)) (&& (== netcoreapp2.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (>= monoandroid)) (&& (== 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)) (== netstandard1.6) (== netstandard2.0) System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (>= net461)) (== net462) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.0) (>= net461)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5) @@ -2465,6 +2520,21 @@ NUGET System.Net.Http.WinHttpHandler (4.5) - restriction: || (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net462) (< net45) (>= netstandard2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Buffers (>= 4.4) - restriction: || (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (>= monoandroid)) (&& (== net46) (>= monotouch)) (&& (== net46) (>= xamarinios)) (&& (== net46) (>= xamarinmac)) (&& (== net46) (>= xamarintvos)) (&& (== net46) (>= xamarinwatchos)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (>= monoandroid)) (&& (== net462) (>= monotouch)) (&& (== net462) (< net46) (>= netstandard2.0)) (&& (== net462) (>= xamarinios)) (&& (== net462) (>= xamarinmac)) (&& (== net462) (>= xamarintvos)) (&& (== net462) (>= xamarinwatchos)) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.0) (>= monoandroid)) (&& (== netcoreapp2.0) (>= monotouch)) (&& (== netcoreapp2.0) (>= xamarinios)) (&& (== netcoreapp2.0) (>= xamarinmac)) (&& (== netcoreapp2.0) (>= xamarintvos)) (&& (== netcoreapp2.0) (>= xamarinwatchos)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (>= monoandroid)) (&& (== netcoreapp2.1) (>= monotouch)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= xamarinios)) (&& (== netcoreapp2.1) (>= xamarinmac)) (&& (== netcoreapp2.1) (>= xamarintvos)) (&& (== netcoreapp2.1) (>= xamarinwatchos)) (&& (== netstandard1.6) (>= monoandroid)) (&& (== netstandard1.6) (>= monotouch)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= xamarinios)) (&& (== netstandard1.6) (>= xamarinmac)) (&& (== netstandard1.6) (>= xamarintvos)) (&& (== netstandard1.6) (>= xamarinwatchos)) (== netstandard2.0) System.Memory (>= 4.5) - restriction: || (&& (== net46) (>= net461)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= uap10.1)) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) + System.Net.NameResolution (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.native.System (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Collections (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Globalization (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Net.Primitives (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Principal.Windows (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Net.Primitives (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.0) (< portable-net45+win8+wpa81)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (< portable-net45+win8+wpa81)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) (&& (== netstandard2.0) (< portable-net45+win8+wpa81)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< netstandard1.1)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.1)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< netstandard1.1)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.1)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2484,7 +2554,36 @@ NUGET System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< netstandard1.1)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.1)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Net.Sockets (4.3) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) + System.Net.Security (4.3.2) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + Microsoft.Win32.Primitives (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.native.System (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.native.System.Net.Security (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Collections (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Collections.Concurrent (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Diagnostics.Tracing (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Globalization (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Globalization.Extensions (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Net.Primitives (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Claims (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Cryptography.Algorithms (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Cryptography.OpenSsl (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Security.Principal (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Text.Encoding (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.ThreadPool (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Net.Sockets (4.3) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.IO (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2496,7 +2595,7 @@ NUGET System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Numerics.Vectors (4.5) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= netstandard2.0) (>= uap10.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= netstandard2.0) (>= uap10.1)) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.0) (>= net461)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Numerics.Vectors (4.5) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (< net451) (>= net461) (>= netstandard2.0)) (&& (== net46) (>= net461) (>= uap10.1)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= netstandard2.0) (>= uap10.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= uap10.1)) (&& (== netcoreapp2.0) (== netstandard1.6)) (&& (== netcoreapp2.0) (>= net461)) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netcoreapp2.1) (>= net461)) (&& (== netcoreapp2.1) (< netcoreapp2.0)) (&& (== netcoreapp2.1) (>= uap10.1)) (&& (== netstandard1.6) (>= net461) (>= uap10.1)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.ObjectModel (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (&& (== netcoreapp2.0) (< netstandard1.2)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.0) (< portable-net45+win8+wpa81)) (&& (== netcoreapp2.1) (< netstandard1.2)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (&& (== netcoreapp2.1) (< portable-net45+win8+wpa81)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.2)) (&& (== netstandard2.0) (< netstandard1.3)) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) (&& (== netstandard2.0) (< portable-net45+win8+wpa81)) System.Collections (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2576,7 +2675,10 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Reflection.TypeExtensions (4.5.1) - storage: packages, content: none, restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net20)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net20)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Reflection.TypeExtensions (4.5.1) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< net451)) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Reflection (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (>= dnxcore50)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (>= dnxcore50)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= dnxcore50)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (>= dnxcore50)) (&& (== netstandard2.0) (< netstandard1.5)) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (>= dnxcore50)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (>= dnxcore50)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= dnxcore50)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (>= dnxcore50)) (&& (== netstandard2.0) (< netstandard1.5)) + System.Runtime (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (>= dnxcore50)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (>= dnxcore50)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (>= dnxcore50)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (>= dnxcore50)) (&& (== netstandard2.0) (< netstandard1.5)) System.Resources.ResourceManager (4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net46) (>= netstandard1.6)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2593,7 +2695,7 @@ NUGET System.Runtime (4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (>= net463)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (>= net463)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (4.5.1) - restriction: || (== net46) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net46)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.0)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (4.5.1) - restriction: || (== net46) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net46)) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= uap10.0)) (&& (== netstandard1.6) (>= uap10.1)) (== netstandard2.0) System.Runtime.Extensions (4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net46) (>= netstandard1.6)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2637,9 +2739,17 @@ NUGET System.Runtime.Serialization.Primitives (4.3) - restriction: || (&& (== net46) (< net20)) (&& (== net462) (< net20)) (&& (== net462) (< net46) (>= netstandard2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Security.AccessControl (4.5) - restriction: || (&& (== net462) (== netstandard1.6)) (&& (== net462) (>= monoandroid)) (&& (== net462) (>= monotouch)) (&& (== net462) (< net46)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= xamarinios)) (&& (== net462) (>= xamarinmac)) (&& (== net462) (>= xamarintvos)) (&& (== net462) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= monoandroid)) (&& (== netstandard1.6) (>= monotouch)) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= xamarinios)) (&& (== netstandard1.6) (>= xamarinmac)) (&& (== netstandard1.6) (>= xamarintvos)) (&& (== netstandard1.6) (>= xamarinwatchos)) (== netstandard2.0) + System.Security.AccessControl (4.5) - restriction: || (&& (== net46) (>= monoandroid) (>= netstandard2.0)) (&& (== net46) (>= monotouch) (>= netstandard2.0)) (&& (== net46) (< net451) (>= netstandard2.0)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= netstandard2.0) (>= xamarinios)) (&& (== net46) (>= netstandard2.0) (>= xamarinmac)) (&& (== net46) (>= netstandard2.0) (>= xamarintvos)) (&& (== net46) (>= netstandard2.0) (>= xamarinwatchos)) (&& (== net462) (>= monoandroid) (>= netstandard2.0)) (&& (== net462) (>= monotouch) (>= netstandard2.0)) (&& (== net462) (< net451) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= netstandard2.0) (>= xamarinios)) (&& (== net462) (>= netstandard2.0) (>= xamarinmac)) (&& (== net462) (>= netstandard2.0) (>= xamarintvos)) (&& (== net462) (>= netstandard2.0) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 2.0) - restriction: || (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.0)) System.Security.Principal.Windows (>= 4.5) - restriction: || (&& (== net46) (>= net461)) (&& (== net46) (>= netcoreapp2.0)) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Security.Claims (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Collections (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Globalization (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.IO (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Principal (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Security.Cryptography.Algorithms (4.3.1) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2716,7 +2826,7 @@ NUGET System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Security.Cryptography.ProtectedData (4.5) - restriction: || (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net462) (< net45) (>= netstandard2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Memory (>= 4.5) - restriction: || (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (< net46) (>= netstandard2.0)) (== netcoreapp2.0) (&& (== netcoreapp2.1) (== netstandard1.6)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) - System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) + System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< net451)) (&& (== net462) (< netstandard1.4)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.native.System (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) runtime.native.System.Net.Http (>= 4.3) - restriction: || (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2744,14 +2854,30 @@ NUGET System.Threading (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46) (>= netstandard1.6)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Security.Permissions (4.5) - restriction: || (&& (== net46) (>= monoandroid) (>= netstandard2.0)) (&& (== net46) (>= monotouch) (>= netstandard2.0)) (&& (== net46) (< net45) (>= netstandard2.0)) (&& (== net46) (>= netstandard2.0) (>= xamarinios)) (&& (== net46) (>= netstandard2.0) (>= xamarinmac)) (&& (== net46) (>= netstandard2.0) (>= xamarintvos)) (&& (== net46) (>= netstandard2.0) (>= xamarinwatchos)) (&& (== net462) (>= monoandroid) (>= netstandard2.0)) (&& (== net462) (>= monotouch) (>= netstandard2.0)) (&& (== net462) (< net45) (>= netstandard2.0)) (&& (== net462) (>= netstandard2.0) (>= xamarinios)) (&& (== net462) (>= netstandard2.0) (>= xamarinmac)) (&& (== net462) (>= netstandard2.0) (>= xamarintvos)) (&& (== net462) (>= netstandard2.0) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Security.AccessControl (>= 4.5) - restriction: || (&& (== net46) (>= net461)) (&& (== net46) (>= netstandard2.0)) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) - System.Security.Principal.Windows (4.5) - restriction: || (&& (== net46) (>= netcoreapp2.1)) (&& (== net462) (== netstandard1.6)) (&& (== net462) (>= monoandroid)) (&& (== net462) (>= monotouch)) (&& (== net462) (< net46)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.1)) (&& (== net462) (>= xamarinios)) (&& (== net462) (>= xamarinmac)) (&& (== net462) (>= xamarintvos)) (&& (== net462) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= monoandroid)) (&& (== netstandard1.6) (>= monotouch)) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netcoreapp2.1)) (&& (== netstandard1.6) (>= netstandard2.0)) (&& (== netstandard1.6) (>= xamarinios)) (&& (== netstandard1.6) (>= xamarinmac)) (&& (== netstandard1.6) (>= xamarintvos)) (&& (== netstandard1.6) (>= xamarinwatchos)) (== netstandard2.0) + System.Security.Principal (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net451)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net451)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Security.Principal.Windows (4.5) - restriction: || (&& (== net46) (>= monoandroid) (>= netstandard2.0)) (&& (== net46) (>= monotouch) (>= netstandard2.0)) (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net46) (>= netcoreapp2.1)) (&& (== net46) (>= netstandard2.0) (>= xamarinios)) (&& (== net46) (>= netstandard2.0) (>= xamarinmac)) (&& (== net46) (>= netstandard2.0) (>= xamarintvos)) (&& (== net46) (>= netstandard2.0) (>= xamarinwatchos)) (&& (== net462) (>= monoandroid) (>= netstandard2.0)) (&& (== net462) (>= monotouch) (>= netstandard2.0)) (&& (== net462) (< net451)) (&& (== net462) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.1)) (&& (== net462) (>= netstandard2.0) (>= xamarinios)) (&& (== net462) (>= netstandard2.0) (>= xamarinmac)) (&& (== net462) (>= netstandard2.0) (>= xamarintvos)) (&& (== net462) (>= netstandard2.0) (>= xamarinwatchos)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 2.0) - restriction: || (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.0)) + Microsoft.Win32.Primitives (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Collections (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Reflection (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Runtime (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Runtime.Handles (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Runtime.InteropServices (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Security.Claims (>= 4.3) - restriction: || (== net46) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== net462) (< net461)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Security.Principal (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Text.Encoding (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) + System.Threading (>= 4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) System.Text.Encoding (4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (&& (== net462) (< net46) (>= netstandard1.6)) (&& (== net462) (< net46) (>= netstandard2.0)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Text.Encoding.CodePages (4.5) - restriction: || (&& (== net462) (< net46) (>= netstandard2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) + System.Text.Encoding.CodePages (4.5) - restriction: || (&& (== net46) (< net451)) (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (< net451)) (&& (== net462) (< net46) (>= netstandard2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 2.0) - restriction: || (&& (== net46) (>= netcoreapp2.0)) (&& (== net462) (>= netcoreapp2.0)) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp2.0)) + NETStandard.Library (>= 1.6.1) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net46)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) System.Runtime.CompilerServices.Unsafe (>= 4.5) - restriction: || (&& (== net46) (>= net461)) (&& (== net46) (>= netcoreapp2.0)) (== net462) (== netcoreapp2.0) (== netcoreapp2.1) (&& (== netstandard1.6) (>= net461)) (&& (== netstandard1.6) (>= netcoreapp2.0)) (&& (== netstandard1.6) (>= netstandard2.0)) (== netstandard2.0) System.Text.Encoding.Extensions (4.3) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2768,7 +2894,7 @@ NUGET System.Threading (4.3) - restriction: || (&& (== net46) (< net45)) (&& (== net46) (< portable-net45+win8+wpa81)) (&& (== net46) (>= uap10.0)) (&& (== net462) (< net45)) (&& (== net462) (< net46)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== net462) (< portable-net45+win8+wpa81)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Threading.Overlapped (4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Overlapped (4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) @@ -2789,9 +2915,9 @@ NUGET System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Tasks (>= 4.3) - restriction: || (&& (== net46) (>= dnxcore50)) (&& (== net46) (< net45)) (&& (== net462) (>= dnxcore50)) (&& (== net462) (< net45)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Threading.Thread (4.3) - restriction: || (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.Thread (4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) - System.Threading.ThreadPool (4.3) - restriction: || (&& (== net46) (< net45) (>= netstandard1.6)) (&& (== net462) (< net45) (>= netstandard1.6)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) + System.Threading.ThreadPool (4.3) - restriction: || (&& (== net46) (< net451)) (&& (== net462) (< net451)) (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Runtime.Handles (>= 4.3) - restriction: || (&& (== net462) (< net46)) (== netcoreapp2.0) (== netcoreapp2.1) (== netstandard1.6) (== netstandard2.0) System.Threading.Timer (4.3) - restriction: || (&& (== net46) (== netcoreapp2.0)) (&& (== net46) (== netcoreapp2.1)) (&& (== net46) (== netstandard2.0)) (&& (== net46) (< net45)) (&& (== net46) (>= uap10.0)) (&& (== net462) (== netcoreapp2.0)) (&& (== net462) (== netcoreapp2.1)) (&& (== net462) (== netstandard2.0)) (&& (== net462) (< net45)) (&& (== net462) (< netstandard1.5) (>= uap10.0)) (&& (== netcoreapp2.0) (< netstandard1.3)) (&& (== netcoreapp2.0) (< netstandard1.4)) (&& (== netcoreapp2.0) (< netstandard1.5)) (&& (== netcoreapp2.0) (< netstandard1.6)) (&& (== netcoreapp2.0) (< netstandard2.0)) (&& (== netcoreapp2.1) (< netstandard1.3)) (&& (== netcoreapp2.1) (< netstandard1.4)) (&& (== netcoreapp2.1) (< netstandard1.5)) (&& (== netcoreapp2.1) (< netstandard1.6)) (&& (== netcoreapp2.1) (< netstandard2.0)) (== netstandard1.6) (&& (== netstandard2.0) (< netstandard1.3)) (&& (== netstandard2.0) (< netstandard1.4)) (&& (== netstandard2.0) (< netstandard1.5)) (&& (== netstandard2.0) (< netstandard1.6)) diff --git a/src/app/Fake.Sql.SqlServer/AssemblyInfo.fs b/src/app/Fake.Sql.SqlServer/AssemblyInfo.fs new file mode 100644 index 00000000000..06c6a170954 --- /dev/null +++ b/src/app/Fake.Sql.SqlServer/AssemblyInfo.fs @@ -0,0 +1,17 @@ +// Auto-Generated by FAKE; do not edit +namespace System +open System.Reflection + +[] +[] +[] +[] +[] +do () + +module internal AssemblyVersionInformation = + let [] AssemblyTitle = "FAKE - F# Make Sql Server operations" + let [] AssemblyProduct = "FAKE - F# Make" + let [] AssemblyVersion = "5.7.3" + let [] AssemblyInformationalVersion = "5.7.3-alpha" + let [] AssemblyFileVersion = "5.7.3" diff --git a/src/app/Fake.Sql.SqlServer/Fake.Sql.SqlServer.fsproj b/src/app/Fake.Sql.SqlServer/Fake.Sql.SqlServer.fsproj new file mode 100644 index 00000000000..52f42e896a7 --- /dev/null +++ b/src/app/Fake.Sql.SqlServer/Fake.Sql.SqlServer.fsproj @@ -0,0 +1,24 @@ + + + net46;netstandard2.0 + $(DefineConstants);DOTNETCORE + Fake.Sql.SqlServer + Library + false + + + + + + + + + + + $(DefineConstants);NETSTANDARD2_0 + + + $(DefineConstants);RELEASE + + + \ No newline at end of file diff --git a/src/app/Fake.Sql.SqlServer/Sql.SqlServer.fs b/src/app/Fake.Sql.SqlServer/Sql.SqlServer.fs new file mode 100644 index 00000000000..fbfca7319b4 --- /dev/null +++ b/src/app/Fake.Sql.SqlServer/Sql.SqlServer.fs @@ -0,0 +1,170 @@ +namespace Fake.Sql + +/// Contains helpers around interacting with SQL Server databases. +[] +module SqlServer = + + open System + open System.IO + open System.Data.SqlClient + open Microsoft.SqlServer.Management.Smo + open Microsoft.SqlServer.Management.Common + + open Fake.Core + open Fake.IO + open Fake.IO.FileSystemOperators + + type ServerInfo = { + Server: Server + ConnBuilder: SqlConnectionStringBuilder } + + module ServerInfo = + let create connectionString = + let connBuilder = new SqlConnectionStringBuilder(connectionString) + let conn = new ServerConnection() + if not <| String.IsNullOrWhiteSpace(connBuilder.UserID) then + conn.LoginSecure <- false + conn.Login <- connBuilder.UserID + + if not <| String.IsNullOrWhiteSpace(connBuilder.Password) then + conn.LoginSecure <- false + conn.Password <- connBuilder.Password + + conn.ServerInstance <- connBuilder.DataSource + conn.Connect() + + { Server = new Server(conn); ConnBuilder = connBuilder } + + /// Gets the `Database`s from the database server. + let getDatabasesFromServer (serverInfo:ServerInfo) = + seq { for db in serverInfo.Server.Databases -> db } + + /// Gets the Database names from the database server. + let getDatabaseNamesFromServer (serverInfo:ServerInfo) = + serverInfo + |> getDatabasesFromServer + |> Seq.map (fun db -> db.Name) + + /// Get the name of the InitialCatalog + let getInitialCatalog serverInfo = serverInfo.ConnBuilder.InitialCatalog + + /// Gets the name or network address of the instance of SQL Server. + let getServerName serverInfo = serverInfo.ConnBuilder.DataSource + + /// Checks that the specified `dbName` exists on the server. + let databaseExistsOnServer serverInfo dbName = + let names = getDatabaseNamesFromServer serverInfo + let searched = getInitialCatalog serverInfo + Trace.tracefn "Searching for database [%s] on server [%s]. Found: " searched (getServerName serverInfo) + names + |> Seq.iter (Trace.tracefn " - [%s] ") + + names + |> Seq.exists ((=) dbName) + + /// Gets the Initial Catalog as a `Database` instance + let getDatabase serverInfo = new Database(serverInfo.Server, getInitialCatalog serverInfo) + + /// Checks the specified initial catalog exists on the database server. + let initialCatalogExistsOnServer serverInfo = + getInitialCatalog serverInfo + |> databaseExistsOnServer serverInfo + + /// Drops the database if it exists. + let dropDatabase serverInfo = + if initialCatalogExistsOnServer serverInfo then + let initialCatalog = getInitialCatalog serverInfo + Trace.logfn "Dropping database [%s] on server [%s]." initialCatalog (getServerName serverInfo) + (getDatabase serverInfo).DropBackupHistory |> ignore + initialCatalog |> serverInfo.Server.KillDatabase + + /// Kills all processes on the Initial Catalog. + let killAllProcesses serverInfo = + let initialCatalog = getInitialCatalog serverInfo + Trace.logfn "Killing all processes from database [%s] on server [%s]." initialCatalog (getServerName serverInfo) + serverInfo.Server.KillAllProcesses initialCatalog + + /// Detaches the Initial Catalog database. + let detachDatabase serverInfo = + killAllProcesses serverInfo + let initialCatalog = getInitialCatalog serverInfo + Trace.logfn "Detaching database [%s] on server [%s]." initialCatalog (getServerName serverInfo) + serverInfo.Server.DetachDatabase(initialCatalog, true) + + /// Attaches a database that is made up of one or more files as the Initial Catalog database, and throws when any file does not exist. + let attach serverInfo (attachOptions:AttachOptions) files = + let sc = new Collections.Specialized.StringCollection() + files |> Seq.iter (fun file -> + sc.Add file |> ignore + File.checkExists file) + + let initialCatalog = getInitialCatalog serverInfo + + Trace.logfn "Attaching database [%s] on server [%s]." initialCatalog (getServerName serverInfo) + serverInfo.Server.AttachDatabase(initialCatalog, sc, attachOptions) + + /// Creates the Initial Catalog database on the server. + let createDatabase serverInfo = + Trace.logfn "Creating database [%s] on server [%s]." (getInitialCatalog serverInfo) (getServerName serverInfo) + (getDatabase serverInfo).Create() + + /// Runs the sql file on the database. + let runScript serverInfo sqlFile = + Trace.logfn "Executing script %s." sqlFile + sqlFile + |> File.readAsString + |> (getDatabase serverInfo).ExecuteNonQuery + + /// Closes the connection to the database server. + let disconnect serverInfo = + Trace.logfn "Disconnecting from server [%s]." (getServerName serverInfo) + if isNull serverInfo.Server then + failwith "Server is not configured." + if isNull serverInfo.Server.ConnectionContext then + failwith "Server.ConnectionContext is not configured." + serverInfo.Server.ConnectionContext.Disconnect() + + /// Replaces the database files given some files given by a copying function `copyF`. + let internal replaceDatabaseFilesF connectionString attachOptions copyF = + let si = ServerInfo.create connectionString + + if databaseExistsOnServer si (getInitialCatalog si) + then detachDatabase si + + copyF() |> attach si attachOptions + + disconnect si + + /// Replaces the database files with one or more files. + let replaceDatabaseFiles connectionString targetDir files attachOptions = + replaceDatabaseFilesF connectionString attachOptions + (fun _ -> + files + |> Seq.map (fun fileName -> + let fi = new FileInfo(fileName) + Shell.copyFile targetDir fileName + targetDir @@ fi.Name)) + + /// Replaces the database files with one or more files, and if the files are not cached + /// or the original files have a different write time, the cache will refresh. + let replaceDatabaseFilesWithCache connectionString targetDir cacheDir files attachOptions = + replaceDatabaseFilesF connectionString attachOptions + (fun _ -> Shell.copyCached targetDir cacheDir files) + + /// Drops and creates the database indicated by the connection string. + let dropAndCreateDatabase connectionString = + let si = ServerInfo.create connectionString + dropDatabase si + createDatabase si + disconnect si + + /// Runs each sql file on the database. + let runScripts connectionString scripts = + let serverInfo = ServerInfo.create connectionString + scripts |> Seq.iter (runScript serverInfo) + disconnect serverInfo + + /// Run every *.sql file in the directory on the database. + let runScriptsFromDirectory connectionString scriptDirectory = + System.IO.Directory.GetFiles(scriptDirectory, "*.sql") + |> runScripts connectionString \ No newline at end of file diff --git a/src/app/Fake.Sql.SqlServer/paket.references b/src/app/Fake.Sql.SqlServer/paket.references new file mode 100644 index 00000000000..f01b78c6197 --- /dev/null +++ b/src/app/Fake.Sql.SqlServer/paket.references @@ -0,0 +1,7 @@ +group netcore + +FSharp.Core +NETStandard.Library + +System.Data.SqlClient +Microsoft.SqlServer.SqlManagementObjects \ No newline at end of file diff --git a/src/legacy/Fake.SQL/SQLServer.fs b/src/legacy/Fake.SQL/SQLServer.fs index a50b3facb76..36c38166625 100644 --- a/src/legacy/Fake.SQL/SQLServer.fs +++ b/src/legacy/Fake.SQL/SQLServer.fs @@ -1,5 +1,5 @@ [] -[] +[] module Fake.SQL.SqlServer open Fake @@ -9,13 +9,13 @@ open Microsoft.SqlServer.Management.Smo open Microsoft.SqlServer.Management.Common open System.IO -[] +[] type ServerInfo ={ Server: Server ConnBuilder: SqlConnectionStringBuilder} /// Gets a connection to the SQL server and an instance to the ConnectionStringBuilder -[] +[] let getServerInfo connectionString = let connbuilder = new SqlConnectionStringBuilder(connectionString) let conn = new ServerConnection() @@ -34,26 +34,26 @@ let getServerInfo connectionString = ConnBuilder = connbuilder} /// gets the DatabaseNames from the server -[] +[] let getDatabasesFromServer (serverInfo:ServerInfo) = seq {for db in serverInfo.Server.Databases -> db} /// gets the DatabaseNames from the server -[] +[] let getDatabaseNamesFromServer (serverInfo:ServerInfo) = getDatabasesFromServer serverInfo |> Seq.map (fun db -> db.Name) /// Gets the initial catalog name -[] +[] let getDBName serverInfo = serverInfo.ConnBuilder.InitialCatalog /// Gets the name of the server -[] +[] let getServerName serverInfo = serverInfo.ConnBuilder.DataSource /// Checks whether the given Database exists on the server -[] +[] let existDBOnServer serverInfo dbName = let names = getDatabaseNamesFromServer serverInfo let searched = getDBName serverInfo @@ -65,17 +65,17 @@ let existDBOnServer serverInfo dbName = |> Seq.exists ((=) dbName) /// Gets the initial catalog as database instance -[] +[] let getDatabase serverInfo = new Database(serverInfo.Server, getDBName serverInfo) /// Checks whether the given InitialCatalog exists on the server -[] +[] let intitialCatalogExistsOnServer serverInfo = getDBName serverInfo |> existDBOnServer serverInfo /// Drops the given InitialCatalog from the server (if it exists) -[] +[] let DropDb serverInfo = if intitialCatalogExistsOnServer serverInfo then logfn "Dropping database %s on server %s" (getDBName serverInfo) (getServerName serverInfo) @@ -84,7 +84,7 @@ let DropDb serverInfo = serverInfo /// Kills all processes with the given server info -[] +[] let KillAllProcesses serverInfo = let dbName = getDBName serverInfo logfn "Killing all processes from database %s on server %s." dbName (getServerName serverInfo) @@ -92,7 +92,7 @@ let KillAllProcesses serverInfo = serverInfo /// Detaches a database -[] +[] let Detach serverInfo = serverInfo |> KillAllProcesses @@ -103,7 +103,7 @@ let Detach serverInfo = si /// Attach a database -[] +[] let Attach serverInfo (attachOptions:AttachOptions) files = let sc = new Collections.Specialized.StringCollection () files |> Seq.iter (fun file -> @@ -117,7 +117,7 @@ let Attach serverInfo (attachOptions:AttachOptions) files = serverInfo /// Creates a new db on the given server -[] +[] let CreateDb serverInfo = logfn "Creating database %s on server %s" (getDBName serverInfo) (getServerName serverInfo) (getDatabase serverInfo).Create() @@ -126,7 +126,7 @@ let CreateDb serverInfo = /// Runs a sql script on the server. /// Used as a connection to the database. /// The script which will be run. -[] +[] let runScript serverInfo sqlFile = logfn "Executing script %s" sqlFile sqlFile @@ -134,7 +134,7 @@ let runScript serverInfo sqlFile = |> (getDatabase serverInfo).ExecuteNonQuery /// Closes the connection to the server -[] +[] let Disconnect serverInfo = logfn "Disconnecting from server %s." (getServerName serverInfo) if serverInfo.Server = null then @@ -152,7 +152,7 @@ let internal replaceDatabaseFiles connectionString attachOptions copyF = |> Disconnect /// Replaces the database files -[] +[] let ReplaceDatabaseFiles connectionString targetDir files attachOptions = replaceDatabaseFiles connectionString attachOptions (fun _ -> @@ -169,14 +169,14 @@ let ReplaceDatabaseFiles connectionString targetDir files attachOptions = /// The file cache. If the files in the cache are not up to date, they will be refreshed. /// The original database files. /// AttachOptions for Sql server. -[] +[] let ReplaceDatabaseFilesWithCache connectionString targetDir cacheDir files attachOptions = replaceDatabaseFiles connectionString attachOptions (fun _ -> CopyCached targetDir cacheDir files) /// Drops and creates the database (dropped if db exists. created nonetheless) /// Used to open the connection to the database. -[] +[] let DropAndCreateDatabase connectionString = connectionString |> getServerInfo @@ -187,7 +187,7 @@ let DropAndCreateDatabase connectionString = /// Runs the given sql scripts on the server. /// Used to open the connection to the database. /// The scripts which will be run. -[] +[] let RunScripts connectionString scripts = let serverInfo = getServerInfo connectionString scripts |> Seq.iter (runScript serverInfo) @@ -196,7 +196,7 @@ let RunScripts connectionString scripts = /// Runs all sql scripts from the given directory on the server. /// Used to open the connection to the database. /// All *.sql files inside this directory and all subdirectories will be run. -[] +[] let RunScriptsFromDirectory connectionString scriptDirectory = Directory.GetFiles(scriptDirectory, "*.sql", SearchOption.AllDirectories) - |> RunScripts connectionString + |> RunScripts connectionString \ No newline at end of file From 5d68e0f66d0623d165ebfcfa472bbbd8c30fb50b Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Wed, 26 Sep 2018 17:38:51 +0200 Subject: [PATCH 09/17] debugging --- src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs index 8298c18889a..2ed50a5b39e 100644 --- a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs +++ b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs @@ -46,6 +46,7 @@ let runTemplate rootDir kind = let invokeScript dir scriptName args = let fullScriptPath = Path.Combine(dir, scriptName) + Process.execWithResult (fun x -> x.WithWorkingDirectory(dir) @@ -62,8 +63,11 @@ let tests = // we need to (uninstall) the template, install the packed version, and then execute that template testList "Fake.DotNet.Cli.IntegrationTests.Template tests" [ testList "can install and run the template" [ + Process.setEnableProcessTracing true uninstallTemplate () |> shouldSucceed "should clear out preexisting templates" printfn "%s" Environment.CurrentDirectory + printfn "PATH: %s" <| Environment.GetEnvironmentVariable "PATH" + printfn "DOTNET_ROOT: %s" <| Environment.GetEnvironmentVariable "DOTNET_ROOT" let templateNupkg = GlobbingPattern.create "../../../release/dotnetcore/fake-template.*.nupkg" |> GlobbingPattern.setBaseDir __SOURCE_DIRECTORY__ |> Seq.head installTemplateFrom templateNupkg |> shouldSucceed "should install new FAKE template" From e6043a43c2d250a97bad22457daa9e1b22c92751 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Wed, 26 Sep 2018 22:59:24 +0200 Subject: [PATCH 10/17] lets see what happens --- src/app/Fake.Core.Process/Process.fs | 24 ++++++++++++++++--- .../TemplateTests.fs | 14 ++++++++++- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/app/Fake.Core.Process/Process.fs b/src/app/Fake.Core.Process/Process.fs index c0429f5a16d..45829a3e02c 100644 --- a/src/app/Fake.Core.Process/Process.fs +++ b/src/app/Fake.Core.Process/Process.fs @@ -4,6 +4,7 @@ namespace Fake.Core open System open System.Diagnostics +open System /// A record type which captures console messages type ConsoleMessage = @@ -38,6 +39,14 @@ module private ProcStartInfoData = let defaultEnvVar = "__FAKE_CHECK_USER_ERROR" let createEnvironmentMap () = Environment.environVars () |> Map.ofSeq |> Map.add defaultEnvVar defaultEnvVar + let checkMap (map:Map) = + if Environment.isWindows then + let hs = new System.Collections.Generic.HashSet(StringComparer.OrdinalIgnoreCase) + for kv in map do + if not (hs.Add kv.Key) then + // Environment variables are case sensitive and this is invalid! + let existing = hs |> Seq.find (fun s -> s.Equals(kv.Key, StringComparison.OrdinalIgnoreCase)) + failwithf "Detected invalid environment map the key '%s' was used as '%s' as well, however in windows environment variables are case-insensitive. This error shouldn't happen if you use the process helpers like 'Process.setEnvironmentVariable' instead of setting the map manually." kv.Key existing open ProcStartInfoData @@ -128,6 +137,7 @@ type ProcStartInfo = if not (isNull x.Domain) then p.Domain <- x.Domain + ProcStartInfoData.checkMap x.Environment match x.Environment |> Map.tryFind defaultEnvVar with | None -> failwithf "Your environment variables look like they are set manually, but you are missing the default variables. Use the `Process.` helpers to change the 'Environment' field to inherit default values! See https://github.com/fsharp/FAKE/issues/1776#issuecomment-365431982" | Some _ -> @@ -384,7 +394,11 @@ module Process = let inline getEnv s = ((^a) : (member Environment : Map) (s)) let inline setEnv s e = ((^a) : (member WithEnvironment : Map -> ^a) (s, e)) - getEnv startInfo + let env = getEnv startInfo + env + |> (match env |> Seq.tryFind (fun kv -> kv.Key.Equals(envKey, StringComparison.OrdinalIgnoreCase)) with + | Some oldKey -> Map.remove oldKey.Key + | None -> id) |> Map.add envKey envVar |> setEnv startInfo @@ -393,8 +407,12 @@ module Process = let inline getEnv s = ((^a) : (member Environment : Map) (s)) let inline setEnv s e = ((^a) : (member WithEnvironment : Map -> ^a) (s, e)) - getEnv startInfo - |> Map.remove envKey + let env = getEnv startInfo + env + |> (match env |> Seq.tryFind (fun kv -> kv.Key.Equals(envKey, StringComparison.OrdinalIgnoreCase)) with + | Some oldKey -> Map.remove oldKey.Key + | None -> id) + //|> Map.remove envKey |> setEnv startInfo /// Sets the given environment variables. diff --git a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs index 2ed50a5b39e..677cc39995e 100644 --- a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs +++ b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs @@ -35,7 +35,11 @@ type BootstrapKind = with override x.ToString () = match x with | Tool -> "tool" | Project -> "project" | None -> "none" let shouldSucceed message (r: ProcessResult) = - Expect.isTrue r.OK (sprintf "%s. Results:\n:%A" message r) + let errorStr = + r.Results + |> Seq.map (fun r -> sprintf "%s: %s" (if r.IsError then "stderr" else "stdout") r.Message) + |> fun s -> String.Join("\n", s) + Expect.isTrue r.OK (sprintf "%s. Results:\n:%s" message errorStr) let timeout = (System.TimeSpan.FromMinutes 10.) @@ -66,7 +70,15 @@ let tests = Process.setEnableProcessTracing true uninstallTemplate () |> shouldSucceed "should clear out preexisting templates" printfn "%s" Environment.CurrentDirectory + let p = Environment.GetEnvironmentVariable "PATH" + let c = DotNet.Options.Create() |> dotnetSdk.Value + let d = Path.GetDirectoryName c.DotNetCliPath + if not (p.StartsWith d) then + Environment.SetEnvironmentVariable("PATH", sprintf "%s%c%s" d Path.DirectorySeparatorChar p) + printfn "PATH: %s" <| Environment.GetEnvironmentVariable "PATH" + + printfn "DOTNET_ROOT: %s" <| Environment.GetEnvironmentVariable "DOTNET_ROOT" let templateNupkg = GlobbingPattern.create "../../../release/dotnetcore/fake-template.*.nupkg" |> GlobbingPattern.setBaseDir __SOURCE_DIRECTORY__ |> Seq.head installTemplateFrom templateNupkg |> shouldSucceed "should install new FAKE template" From d494b3c2dd55073c8b56271344af3b8b43be289f Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 00:06:28 +0200 Subject: [PATCH 11/17] fix seperator --- src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs index 677cc39995e..e82c5d6bef5 100644 --- a/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs +++ b/src/test/Fake.DotNet.Cli.IntegrationTests/TemplateTests.fs @@ -74,7 +74,7 @@ let tests = let c = DotNet.Options.Create() |> dotnetSdk.Value let d = Path.GetDirectoryName c.DotNetCliPath if not (p.StartsWith d) then - Environment.SetEnvironmentVariable("PATH", sprintf "%s%c%s" d Path.DirectorySeparatorChar p) + Environment.SetEnvironmentVariable("PATH", sprintf "%s%c%s" d Path.PathSeparator p) printfn "PATH: %s" <| Environment.GetEnvironmentVariable "PATH" From 23eec4759d2f64ca416b68b4b923268b4666749b Mon Sep 17 00:00:00 2001 From: Manuel Pfemeter Date: Thu, 27 Sep 2018 18:24:58 +0200 Subject: [PATCH 12/17] fixes syntax errror --- help/markdown/sql-dacpac.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/help/markdown/sql-dacpac.md b/help/markdown/sql-dacpac.md index a9140f86bfb..a82feef2ed7 100644 --- a/help/markdown/sql-dacpac.md +++ b/help/markdown/sql-dacpac.md @@ -19,9 +19,10 @@ Ensure that you have already built your database project (you can do this with s /// the database for local development + compile Target.create "DeployLocalDb" (fun _ -> - let connectionString = "Data Source=(localdb)\MSSQLLocalDB;Integrated Security=True;Database=MyDatabase;Pooling=False" + let connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Integrated Security=True;Database=MyDatabase;Pooling=False" let dacPacPath = "path/to/dbProject.dacpac" - DacPac.deployDb (fun args -> { args with Source = dacPacPath; Destination = localDbConnectionString }) |> ignore) + DacPac.deployDb (fun args -> { args with Source = dacPacPath; Destination = connectionString }) |> ignore + ) ## Deployment Options From 87cc7ba0a4593140463db03dd0f3ea0f2bb1c3bb Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 18:54:49 +0200 Subject: [PATCH 13/17] log when using the 'target' environment variable. fixes #2107 --- src/app/Fake.Core.Target/Target.fs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/Fake.Core.Target/Target.fs b/src/app/Fake.Core.Target/Target.fs index 24edef92ebc..dd412d73c00 100644 --- a/src/app/Fake.Core.Target/Target.fs +++ b/src/app/Fake.Core.Target/Target.fs @@ -796,7 +796,13 @@ module Target = match DocoptResult.tryGetArgument "" results with | None -> match DocoptResult.tryGetArgument "--target" results with - | None -> Environment.environVarOrNone "target" + | None -> + match Environment.environVarOrNone "target" with + | Some arg -> + Trace.log + <| sprintf "Using target '%s' from the 'target' environment variable." arg + Some arg + | None -> None | Some arg -> Some arg | Some arg -> match DocoptResult.tryGetArgument "--target" results with From 6143455902fd567b4917cbe294e2b1726fe0e47a Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 19:09:40 +0200 Subject: [PATCH 14/17] add some docs around the CI servers --- help/templates/template.cshtml | 5 +++++ src/app/Fake.BuildServer.AppVeyor/AppVeyor.fs | 4 ++++ src/app/Fake.BuildServer.GitLab/GitLab.fs | 4 ++++ src/app/Fake.BuildServer.TeamCity/TeamCity.fs | 4 ++++ src/app/Fake.BuildServer.TeamFoundation/TeamFoundation.fs | 2 +- src/app/Fake.BuildServer.Travis/Travis.fs | 5 ++++- 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/help/templates/template.cshtml b/help/templates/template.cshtml index 8b98ce302ae..6ad32bb1532 100644 --- a/help/templates/template.cshtml +++ b/help/templates/template.cshtml @@ -97,6 +97,11 @@ BuildServer
  • diff --git a/src/app/Fake.BuildServer.AppVeyor/AppVeyor.fs b/src/app/Fake.BuildServer.AppVeyor/AppVeyor.fs index 8a2b642f3c7..7c835f14935 100644 --- a/src/app/Fake.BuildServer.AppVeyor/AppVeyor.fs +++ b/src/app/Fake.BuildServer.AppVeyor/AppVeyor.fs @@ -38,6 +38,10 @@ module AppVeyorImportExtensions = | ImportData.Junit -> "junit" | ImportData.Xunit -> "xunit" +/// native support for AppVeyor specific APIs. +/// The general documentation on how to use CI server integration can be found [here](/buildserver.html). +/// This module does not provide any special APIs please use FAKE APIs and they should integrate into this CI server. +/// If some integration is not working as expected or you have features you would like to use directly please open an issue. [] module AppVeyor = // See https://www.appveyor.com/docs/build-worker-api/#update-tests diff --git a/src/app/Fake.BuildServer.GitLab/GitLab.fs b/src/app/Fake.BuildServer.GitLab/GitLab.fs index 54caf999fac..738b7a38b84 100644 --- a/src/app/Fake.BuildServer.GitLab/GitLab.fs +++ b/src/app/Fake.BuildServer.GitLab/GitLab.fs @@ -37,6 +37,10 @@ module GitLabImportExtensions = | ImportData.Junit -> "junit" | ImportData.Xunit -> "xunit" +/// native support for GitLab specific APIs. +/// The general documentation on how to use CI server integration can be found [here](/buildserver.html). +/// This module does not provide any special APIs please use FAKE APIs and they should integrate into this CI server. +/// If some integration is not working as expected or you have features you would like to use directly please open an issue. [] module GitLab = diff --git a/src/app/Fake.BuildServer.TeamCity/TeamCity.fs b/src/app/Fake.BuildServer.TeamCity/TeamCity.fs index 6f3dcd0b219..3e25b82b1c5 100644 --- a/src/app/Fake.BuildServer.TeamCity/TeamCity.fs +++ b/src/app/Fake.BuildServer.TeamCity/TeamCity.fs @@ -35,6 +35,10 @@ module TeamCityImportExtensions = | ImportData.Nunit _ -> "nunit" | ImportData.Xunit _ -> "nunit" +/// native support for TeamCity specific APIs. +/// The general documentation on how to use CI server integration can be found [here](/buildserver.html). +/// This module does not provide any special APIs please use FAKE APIs and they should integrate into this CI server. +/// If some integration is not working as expected or you have features you would like to use directly please open an issue. [] module TeamCity = open Fake.IO diff --git a/src/app/Fake.BuildServer.TeamFoundation/TeamFoundation.fs b/src/app/Fake.BuildServer.TeamFoundation/TeamFoundation.fs index 74d09c5c0d1..7685abc0ce9 100644 --- a/src/app/Fake.BuildServer.TeamFoundation/TeamFoundation.fs +++ b/src/app/Fake.BuildServer.TeamFoundation/TeamFoundation.fs @@ -6,7 +6,7 @@ open System.IO open Fake.Core open Fake.IO -/// native support for TeamFoundation/VSTS specific APIs. +/// native support for Azure DevOps (previously VSTS) / Team Foundation Server specific APIs. /// The general documentation on how to use CI server integration can be found [here](/buildserver.html) /// /// ### Secret Variables diff --git a/src/app/Fake.BuildServer.Travis/Travis.fs b/src/app/Fake.BuildServer.Travis/Travis.fs index d0b24b20151..ce82beefab2 100644 --- a/src/app/Fake.BuildServer.Travis/Travis.fs +++ b/src/app/Fake.BuildServer.Travis/Travis.fs @@ -6,7 +6,10 @@ open System.IO open Fake.Core open Fake.IO - +/// native support for Travis specific APIs. +/// The general documentation on how to use CI server integration can be found [here](/buildserver.html). +/// This module does not provide any special APIs please use FAKE APIs and they should integrate into this CI server. +/// If some integration is not working as expected or you have features you would like to use directly please open an issue. [] module Travis = From e7e9c101849e0c22f9bf75a36e2607467833a3ee Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 20:22:55 +0200 Subject: [PATCH 15/17] Properly escape MSBuild property values, fixes #2112 Add Support for `WorkingDirectory` in MSBuild arguments. --- src/app/Fake.DotNet.MSBuild/MSBuild.fs | 39 ++++++++-- src/app/Fake.DotNet.MSBuild/VisibleTo.fs | 1 + .../Fake.Core.IntegrationTests.fsproj | 7 +- .../Fake.DotNet.MSBuild.fs | 77 +++++++++++++++++++ .../testdata/testProperty.proj | 6 ++ 5 files changed, 121 insertions(+), 9 deletions(-) create mode 100644 src/test/Fake.Core.IntegrationTests/Fake.DotNet.MSBuild.fs create mode 100644 src/test/Fake.Core.IntegrationTests/testdata/testProperty.proj diff --git a/src/app/Fake.DotNet.MSBuild/MSBuild.fs b/src/app/Fake.DotNet.MSBuild/MSBuild.fs index b554f8f60e8..d82c450f1d1 100644 --- a/src/app/Fake.DotNet.MSBuild/MSBuild.fs +++ b/src/app/Fake.DotNet.MSBuild/MSBuild.fs @@ -252,6 +252,7 @@ type MSBuildParams = { /// Set the MSBuild executable to use. Defaults to the latest installed MSBuild. ToolPath : string + WorkingDirectory : string Targets : string list Properties : (string * string) list /// corresponds to the msbuild option '/m': @@ -286,6 +287,7 @@ type MSBuildParams = static member Create() = { ToolPath = MSBuildExe.msBuildExe Targets = [] + WorkingDirectory = System.IO.Directory.GetCurrentDirectory() Properties = [] MaxCpuCount = Some None DoRestore = false @@ -492,7 +494,21 @@ module MSBuild = | [] -> None | t -> Some("t", t |> Seq.map (String.replace "." "_") |> String.separated ";") - let properties = p.Properties |> List.map (fun (k, v) -> Some("p", sprintf "%s=%s" k v)) + // see https://github.com/fsharp/FAKE/issues/2112 + let escapePropertyValue (v:string) = + // https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-special-characters?view=vs-2017 + v.Replace("%", "%25") + .Replace(";", "%3B") + .Replace(",", "%2C") + .Replace("$", "%24") + .Replace("@", "%40") + .Replace("'", "%27") + .Replace("?", "%3F") + .Replace("*", "%2A") + + let properties = + p.Properties + |> List.map (fun (k, v) -> Some("p", sprintf "%s=%s" k (escapePropertyValue v))) let maxcpu = match p.MaxCpuCount with @@ -695,7 +711,7 @@ module MSBuild = Some path, Args.toWindowsCommandLine (argList @ [ sprintf "/logger:BinaryLogger,%s;%s" assemblyPath path ]) else - Trace.traceFAKE "msbuild version '%O' doesn't support binary logger, pelase set the msbuild argument 'DisableInternalBinLog' to 'true' to disable this warning." v + Trace.traceFAKE "msbuild version '%O' doesn't support binary logger, please set the msbuild argument 'DisableInternalBinLog' to 'true' to disable this warning." v #endif None, args @@ -703,10 +719,14 @@ module MSBuild = let msgs = #if !NO_MSBUILD_BINLOG match binLogPath with - | Some f -> - let r = MSBuildBinLog.getErrorsAndWarnings f - try File.Delete(f) with e -> Trace.traceFAKE "Could not delete '%s': %O" f e - r + | Some f -> + if File.Exists f then + let r = MSBuildBinLog.getErrorsAndWarnings f + try File.Delete(f) with e -> Trace.traceFAKE "Could not delete '%s': %O" f e + r + else + Trace.traceFAKE "msbuild has not created the binlog file as expected, no warnings or errors are reported using native CI capabilities. Use 'DisableInternalBinLog' to 'true' to disable this warning." + [] | None -> #endif [] @@ -762,11 +782,16 @@ module MSBuild = String.Join("\n", result.Messages) let binlogPath, args = addBinaryLogger msBuildParams.ToolPath callMsBuildExe args msBuildParams.DisableInternalBinLog - Trace.tracefn "Building project: %s\n %s %s" project msBuildParams.ToolPath args + let wd = + if msBuildParams.WorkingDirectory = System.IO.Directory.GetCurrentDirectory() + then "" + else sprintf "%s>" msBuildParams.WorkingDirectory + Trace.tracefn "%s%s %s" wd msBuildParams.ToolPath args let exitCode = Process.execSimple (fun info -> { info with FileName = msBuildParams.ToolPath + WorkingDirectory = msBuildParams.WorkingDirectory Arguments = args } |> Process.setEnvironment msBuildParams.Environment) TimeSpan.MaxValue handleAfterRun "msbuild" binlogPath exitCode project diff --git a/src/app/Fake.DotNet.MSBuild/VisibleTo.fs b/src/app/Fake.DotNet.MSBuild/VisibleTo.fs index 449aee757b0..d2f36c3735a 100644 --- a/src/app/Fake.DotNet.MSBuild/VisibleTo.fs +++ b/src/app/Fake.DotNet.MSBuild/VisibleTo.fs @@ -3,4 +3,5 @@ namespace System open System.Runtime.CompilerServices [] +[] do () \ No newline at end of file diff --git a/src/test/Fake.Core.IntegrationTests/Fake.Core.IntegrationTests.fsproj b/src/test/Fake.Core.IntegrationTests/Fake.Core.IntegrationTests.fsproj index bdcbe76846b..3b30cc5df7c 100644 --- a/src/test/Fake.Core.IntegrationTests/Fake.Core.IntegrationTests.fsproj +++ b/src/test/Fake.Core.IntegrationTests/Fake.Core.IntegrationTests.fsproj @@ -1,19 +1,22 @@ - + Exe netcoreapp2.1 + + + - + \ No newline at end of file diff --git a/src/test/Fake.Core.IntegrationTests/Fake.DotNet.MSBuild.fs b/src/test/Fake.Core.IntegrationTests/Fake.DotNet.MSBuild.fs new file mode 100644 index 00000000000..5df9bc4eca3 --- /dev/null +++ b/src/test/Fake.Core.IntegrationTests/Fake.DotNet.MSBuild.fs @@ -0,0 +1,77 @@ +module Fake.DotNet.MSBuildIntegrationTests + +open System +open Fake.Core +open Fake.DotNet +open Expecto + +let buildWithRedirect setParams project = + let msBuildParams, argsString = MSBuild.buildArgs setParams + + let args = Process.toParam project + " " + argsString + + // used for detection + let callMsBuildExe args = + let result = + Process.execWithResult (fun info -> + { info with + FileName = msBuildParams.ToolPath + Arguments = args } + |> Process.setEnvironment msBuildParams.Environment) TimeSpan.MaxValue + if not result.OK then + failwithf "msbuild failed with exitcode '%d'" result.ExitCode + String.Join("\n", result.Messages) + + let binlogPath, args = MSBuild.addBinaryLogger msBuildParams.ToolPath callMsBuildExe args msBuildParams.DisableInternalBinLog + let wd = + if msBuildParams.WorkingDirectory = System.IO.Directory.GetCurrentDirectory() + then "" + else sprintf "%s>" msBuildParams.WorkingDirectory + Trace.tracefn "%s%s %s" wd msBuildParams.ToolPath args + + let result = + Process.execWithResult (fun info -> + { info with + FileName = msBuildParams.ToolPath + WorkingDirectory = msBuildParams.WorkingDirectory + Arguments = args } + |> Process.setEnvironment msBuildParams.Environment) TimeSpan.MaxValue + try + MSBuild.handleAfterRun "msbuild" binlogPath result.ExitCode project + Choice1Of2 result + with e -> Choice2Of2 (e, result) + +let simplePropertyTest propValue = + let dllPath = System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetExecutingAssembly().Location) + let setParams (defaults:MSBuildParams) = + { defaults with + Verbosity = Some(MSBuildVerbosity.Diagnostic) + Targets = ["Test"] + NoLogo = true + Properties = + [ + "Property1", propValue + ] + WorkingDirectory = dllPath + } + + match buildWithRedirect setParams "testdata/testProperty.proj" with + | Choice1Of2 result -> + let lines = String.Join("\n", result.Results |> Seq.map (fun r -> r.Message)) + Expect.stringContains lines (sprintf "$Property1: '%s'" propValue) "Expected to find property value in msbuild output" + Expect.stringContains lines "$Property2: ''" "Expected to find empty Property2" + | Choice2Of2 (e, result) -> + let lines = String.Join("\n", result.Results |> Seq.map (fun r -> sprintf "%s: %s" (if r.IsError then "stderr" else "stdout") r.Message)) + raise <| exn(sprintf "simplePropertyTest failed, msbuild output was: \n%s\n" lines, e) + + +[] +let tests = + testList "Fake.DotNet.MSBuild.IntegrationTests" [ + testCase "#2112" <| fun _ -> + let value = "Data Source=xxx,1433;Initial Catalog=xxx;User Id=xxx;Password=xxx;Integrated Security=False;Persist Security Info=True;Connect Timeout=30;Encrypt=True;MultipleActiveResultSets=True" + simplePropertyTest value + testCase "#2112 (2)" <| fun _ -> + let value = "=asd?*&(($!&%%_^$#_+=-['}{|\';\\'\"\\\"ad" + simplePropertyTest value + ] diff --git a/src/test/Fake.Core.IntegrationTests/testdata/testProperty.proj b/src/test/Fake.Core.IntegrationTests/testdata/testProperty.proj new file mode 100644 index 00000000000..f0593878ef2 --- /dev/null +++ b/src/test/Fake.Core.IntegrationTests/testdata/testProperty.proj @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 51e8868e3a93b793bbb029041ba53a831df5e706 Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 20:36:14 +0200 Subject: [PATCH 16/17] release notes --- RELEASE_NOTES.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index abc06698f4d..e14d7ffd375 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,8 +1,13 @@ # Release Notes -## 5.7.3-alpha - -* tbd +## 5.8.0 - 2018-09-27 + +* NEW: Fake.Sql.SqlServer module - https://github.com/fsharp/FAKE/pull/2074 +* ENHANCEMENT: Some modules are now usable without FAKE context (ie. in your regular projects) +* ENHANCEMENT: Inform when the `target` environment variable is used - https://github.com/fsharp/FAKE/issues/2107 +* BUGFIX: Environment variables are case insensitive on windows, fake will now throw exceptions if it detects invalid environment maps +* BUGFIX: MSBuild properties containing special characters lead to errors - https://github.com/fsharp/FAKE/issues/2112 +* DOCS: Fix syntax errors in dacpac docs - https://github.com/fsharp/FAKE/pull/2115 ## 5.7.2 - 2018-09-24 From 56e61838fbfdb3ed9167e1423c512b586c6d9f7f Mon Sep 17 00:00:00 2001 From: Matthias Dittrich Date: Thu, 27 Sep 2018 20:42:51 +0200 Subject: [PATCH 17/17] order by alphabet and add sql server --- build.fsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build.fsx b/build.fsx index fe6523c0a2f..cf0aec50600 100644 --- a/build.fsx +++ b/build.fsx @@ -259,20 +259,20 @@ let dotnetAssemblyInfos = "Fake.DotNet.AssemblyInfoFile", "Writing AssemblyInfo files" "Fake.DotNet.Cli", "Running the dotnet cli" "Fake.DotNet.Fsc", "Running the f# compiler - fsc" - "Fake.DotNet.Fsi", "FSharp Interactive - fsi" "Fake.DotNet.FSFormatting", "Running fsformatting.exe and generating documentation" + "Fake.DotNet.Fsi", "FSharp Interactive - fsi" "Fake.DotNet.Mage", "Manifest Generation and Editing Tool" "Fake.DotNet.MSBuild", "Running msbuild" "Fake.DotNet.NuGet", "Running NuGet Client and interacting with NuGet Feeds" "Fake.DotNet.Paket", "Running Paket and publishing packages" + "Fake.DotNet.Testing.DotCover", "Code coverage with DotCover" "Fake.DotNet.Testing.Expecto", "Running expecto test runner" "Fake.DotNet.Testing.MSpec", "Running mspec test runner" "Fake.DotNet.Testing.MSTest", "Running mstest test runner" - "Fake.DotNet.Testing.VSTest", "Running vstest test runner" "Fake.DotNet.Testing.NUnit", "Running nunit test runner" "Fake.DotNet.Testing.OpenCover", "Code coverage with OpenCover" - "Fake.DotNet.Testing.DotCover", "Code coverage with DotCover" "Fake.DotNet.Testing.SpecFlow", "BDD with Gherkin and SpecFlow" + "Fake.DotNet.Testing.VSTest", "Running vstest test runner" "Fake.DotNet.Testing.XUnit2", "Running xunit test runner" "Fake.DotNet.Xamarin", "Running Xamarin builds" "Fake.Installer.InnoSetup", "Creating installers with InnoSetup" @@ -286,6 +286,7 @@ let dotnetAssemblyInfos = "Fake.netcore", "Command line tool" "Fake.Runtime", "Core runtime features" "Fake.Sql.DacPac", "Sql Server Data Tools DacPac operations" + "Fake.Sql.SqlServer", "Helpers around interacting with SQL Server databases" "Fake.Testing.Common", "Common testing data types" "Fake.Testing.ReportGenerator", "Convert XML coverage output to various formats" "Fake.Testing.SonarQube", "Analyzing your project with SonarQube"