├── .config
└── dotnet-tools.json
├── .editorconfig
├── .gitignore
├── .paket
└── Paket.Restore.targets
├── LICENSE
├── README.md
├── SQLDumper.sln
├── build.fsx
├── global.json
├── paket.dependencies
├── paket.lock
└── src
├── SQLDumper.Tool
├── Program.fs
├── SQLDumper.Tool.fsproj
└── paket.references
└── SQLDumper
├── MSSQL.fs
├── SQLDumper.fs
├── SQLDumper.fsproj
└── paket.references
/.config/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "paket": {
6 | "version": "5.252.0",
7 | "commands": [
8 | "paket"
9 | ]
10 | },
11 | "fake-cli": {
12 | "version": "5.20.3",
13 | "commands": [
14 | "fake"
15 | ]
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 4
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = false
10 |
11 | [*.yml]
12 | indent_size = 2
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .fable/
2 | .fake/
3 | .farmer/
4 | .idea/
5 | .ionide/
6 | .vs/
7 | obj/
8 | bin/
9 | packages/
10 | paket-files/
11 | node_modules/
12 | publish/
13 | release.cmd
14 | release.sh
15 | *.orig
16 | *.DotSettings.user
--------------------------------------------------------------------------------
/.paket/Paket.Restore.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
8 |
9 | $(MSBuildVersion)
10 | 15.0.0
11 | false
12 | true
13 |
14 | true
15 | $(MSBuildThisFileDirectory)
16 | $(MSBuildThisFileDirectory)..\
17 | $(PaketRootPath)paket-files\paket.restore.cached
18 | $(PaketRootPath)paket.lock
19 | classic
20 | proj
21 | assembly
22 | native
23 | /Library/Frameworks/Mono.framework/Commands/mono
24 | mono
25 |
26 |
27 | $(PaketRootPath)paket.bootstrapper.exe
28 | $(PaketToolsPath)paket.bootstrapper.exe
29 | $([System.IO.Path]::GetDirectoryName("$(PaketBootStrapperExePath)"))\
30 |
31 | "$(PaketBootStrapperExePath)"
32 | $(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"
33 |
34 |
35 |
36 |
37 | true
38 | true
39 |
40 |
41 | True
42 |
43 |
44 | False
45 |
46 | $(BaseIntermediateOutputPath.TrimEnd('\').TrimEnd('\/'))
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | $(PaketRootPath)paket
56 | $(PaketToolsPath)paket
57 |
58 |
59 |
60 |
61 |
62 | $(PaketRootPath)paket.exe
63 | $(PaketToolsPath)paket.exe
64 |
65 |
66 |
67 |
68 |
69 | <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json"))
70 | <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"'))
71 | <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | <_PaketCommand>dotnet paket
83 |
84 |
85 |
86 |
87 |
88 | $(PaketToolsPath)paket
89 | $(PaketBootStrapperExeDir)paket
90 |
91 |
92 | paket
93 |
94 |
95 |
96 |
97 | <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))
98 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"
99 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"
100 | <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)"
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 | true
122 | $(NoWarn);NU1603;NU1604;NU1605;NU1608
123 | false
124 | true
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 | $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))
134 |
135 |
136 |
137 |
138 |
139 |
141 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[0].Replace(`"`, ``).Replace(` `, ``))
142 | $([System.Text.RegularExpressions.Regex]::Split(`%(Identity)`, `": "`)[1].Replace(`"`, ``).Replace(` `, ``))
143 |
144 |
145 |
146 |
147 | %(PaketRestoreCachedKeyValue.Value)
148 | %(PaketRestoreCachedKeyValue.Value)
149 |
150 |
151 |
152 |
153 | true
154 | false
155 | true
156 |
157 |
158 |
162 |
163 | true
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | $(PaketIntermediateOutputPath)\$(MSBuildProjectFile).paket.references.cached
183 |
184 | $(MSBuildProjectFullPath).paket.references
185 |
186 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references
187 |
188 | $(MSBuildProjectDirectory)\paket.references
189 |
190 | false
191 | true
192 | true
193 | references-file-or-cache-not-found
194 |
195 |
196 |
197 |
198 | $([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)'))
199 | $([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)'))
200 | references-file
201 | false
202 |
203 |
204 |
205 |
206 | false
207 |
208 |
209 |
210 |
211 | true
212 | target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths)
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 | false
224 | true
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length)
236 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])
237 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])
238 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])
239 | $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5])
240 |
241 |
242 | %(PaketReferencesFileLinesInfo.PackageVersion)
243 | All
244 | runtime
245 | runtime
246 | true
247 | true
248 |
249 |
250 |
251 |
252 | $(PaketIntermediateOutputPath)/$(MSBuildProjectFile).paket.clitools
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0])
262 | $([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1])
263 |
264 |
265 | %(PaketCliToolFileLinesInfo.PackageVersion)
266 |
267 |
268 |
269 |
273 |
274 |
275 |
276 |
277 |
278 | false
279 |
280 |
281 |
282 |
283 |
284 | <_NuspecFilesNewLocation Include="$(PaketIntermediateOutputPath)\$(Configuration)\*.nuspec"/>
285 |
286 |
287 |
288 |
289 |
290 | $(MSBuildProjectDirectory)/$(MSBuildProjectFile)
291 | true
292 | false
293 | true
294 | false
295 | true
296 | false
297 | true
298 | false
299 | true
300 | $(PaketIntermediateOutputPath)\$(Configuration)
301 | $(PaketIntermediateOutputPath)
302 |
303 |
304 |
305 | <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.$(PackageVersion.Split(`+`)[0]).nuspec"/>
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
363 |
364 |
407 |
408 |
450 |
451 |
492 |
493 |
494 |
495 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Roman Provazník
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SQLDumper   
2 |
3 | Dump your MSSQL database into file or stream using F# library or .NET CLI tool.
4 |
5 | ## Using F# library
6 |
7 | ### Installation
8 |
9 | If you want to install this package manually, use usual NuGet package command
10 |
11 | Install-Package SQLDumper
12 |
13 | or using [Paket](http://fsprojects.github.io/Paket/getting-started.html)
14 |
15 | paket add SQLDumper
16 |
17 | ### Usage
18 |
19 | Library is rather simple:
20 |
21 | ```f#
22 | open SQLDumper
23 |
24 | SQLDumper.init "myconnectionstring"
25 | |> SQLDumper.useGoStatements true // default
26 | |> SQLDumper.statementsInTransaction 1000 // default
27 | |> SQLDumper.rowsInStatement 100 // default
28 | |> SQLDumper.ignoreTables ["ignore1";"ignore2"] // empty by default
29 | |> MSSQL.dumpToFile "path/to/file.sql"
30 | ```
31 |
32 | If you prefer using `TextWriter` from BCL, you can use `MSSQL.dumpToWriter` function.
33 |
34 | ## Using .NET CLI tool
35 |
36 | ### Installation
37 |
38 | To install .NET tool use this command
39 |
40 | dotnet tool install SQLDumper.Tool
41 |
42 | ### Usage
43 |
44 | Again, this CLI tool is rather simple:
45 |
46 | ```
47 | USAGE:
48 | sqldump (-h | --help)
49 | sqldump [options]
50 |
51 | OPTIONS [options]:
52 | -h --help Shows help
53 | --usego Use GO statements [default: True]
54 | --statements Number of statements in transaction [default: 1000]
55 | --rows Number of rows in transaction [default: 100]
56 | --ignore Tables to ignore when doing SQL dump (use comma for more tables separation)
57 | ```
58 |
59 | ## Kudos 👏
60 |
61 | Thanks to [@ArtemAvramenko](https://github.com/ArtemAvramenko) for his [SqlDump](https://github.com/ArtemAvramenko/SqlDump) C# library used as reference project for this library.
62 |
--------------------------------------------------------------------------------
/SQLDumper.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLDumper", "src\SQLDumper\SQLDumper.fsproj", "{1546C8B4-6F6B-4641-8459-8E9BB2ACD638}"
4 | EndProject
5 | Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLDumper.Tool", "src\SQLDumper.Tool\SQLDumper.Tool.fsproj", "{D7AF168B-6BE6-4013-804C-4FCDB13EF9C6}"
6 | EndProject
7 | Global
8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
9 | Debug|Any CPU = Debug|Any CPU
10 | Release|Any CPU = Release|Any CPU
11 | EndGlobalSection
12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
13 | {1546C8B4-6F6B-4641-8459-8E9BB2ACD638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
14 | {1546C8B4-6F6B-4641-8459-8E9BB2ACD638}.Debug|Any CPU.Build.0 = Debug|Any CPU
15 | {1546C8B4-6F6B-4641-8459-8E9BB2ACD638}.Release|Any CPU.ActiveCfg = Release|Any CPU
16 | {1546C8B4-6F6B-4641-8459-8E9BB2ACD638}.Release|Any CPU.Build.0 = Release|Any CPU
17 | {D7AF168B-6BE6-4013-804C-4FCDB13EF9C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
18 | {D7AF168B-6BE6-4013-804C-4FCDB13EF9C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
19 | {D7AF168B-6BE6-4013-804C-4FCDB13EF9C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
20 | {D7AF168B-6BE6-4013-804C-4FCDB13EF9C6}.Release|Any CPU.Build.0 = Release|Any CPU
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/build.fsx:
--------------------------------------------------------------------------------
1 | #r "paket: groupref Build //"
2 | #load ".fake/build.fsx/intellisense.fsx"
3 |
4 | open System.IO
5 | open Fake.IO
6 | open Fake.Core
7 | open Fake.DotNet
8 | open Fake.IO.FileSystemOperators
9 | open Fake.Core.TargetOperators
10 |
11 | module Tools =
12 | let private findTool tool winTool =
13 | let tool = if Environment.isUnix then tool else winTool
14 | match ProcessUtils.tryFindFileOnPath tool with
15 | | Some t -> t
16 | | _ ->
17 | let errorMsg =
18 | tool + " was not found in path. " +
19 | "Please install it and make sure it's available from your path. "
20 | failwith errorMsg
21 |
22 | let private runTool (cmd:string) args workingDir =
23 | let arguments = args |> String.split ' ' |> Arguments.OfArgs
24 | Command.RawCommand (cmd, arguments)
25 | |> CreateProcess.fromCommand
26 | |> CreateProcess.withWorkingDirectory workingDir
27 | |> CreateProcess.ensureExitCode
28 | |> Proc.run
29 | |> ignore
30 |
31 | let dotnet cmd workingDir =
32 | let result =
33 | DotNet.exec (DotNet.Options.withWorkingDirectory workingDir) cmd ""
34 | if result.ExitCode <> 0 then failwithf "'dotnet %s' failed in %s" cmd workingDir
35 |
36 | let librarySrcPath = "src" > "SQLDumper"
37 | let toolSrcPath = "src" > "SQLDumper.Tool"
38 |
39 | let clean proj =
40 | [
41 | proj > "bin"
42 | proj > "obj"
43 | ]
44 | |> Shell.deleteDirs
45 |
46 | let pack proj =
47 | Tools.dotnet "restore --no-cache" proj
48 | Tools.dotnet "pack -c Release" proj
49 |
50 | let publish proj =
51 | let nugetKey =
52 | match Environment.environVarOrNone "NUGET_KEY" with
53 | | Some nugetKey -> nugetKey
54 | | None -> failwith "The Nuget API key must be set in a NUGET_KEY environmental variable"
55 | let nupkg =
56 | Directory.GetFiles(proj > "bin" > "Release")
57 | |> Seq.head
58 | |> Path.GetFullPath
59 | Tools.dotnet (sprintf "nuget push %s -s nuget.org -k %s" nupkg nugetKey) proj
60 |
61 | Target.create "CleanLibrary" (fun _ -> librarySrcPath |> clean)
62 | Target.create "PackLibrary" (fun _ -> librarySrcPath |> pack)
63 | Target.create "PublishLibrary" (fun _ -> librarySrcPath |> publish)
64 |
65 | "CleanLibrary" ==> "PackLibrary" ==> "PublishLibrary"
66 |
67 | Target.create "CleanTool" (fun _ -> toolSrcPath |> clean)
68 | Target.create "PackTool" (fun _ -> toolSrcPath |> pack)
69 | Target.create "PublishTool" (fun _ -> toolSrcPath |> publish)
70 |
71 | "CleanTool" ==> "PackTool" ==> "PublishTool"
72 |
73 | Target.runOrDefaultWithArguments "CleanLibrary"
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "3.1.300"
4 | }
5 | }
--------------------------------------------------------------------------------
/paket.dependencies:
--------------------------------------------------------------------------------
1 | version 5.249.0
2 | source https://api.nuget.org/v3/index.json
3 | framework: netcoreapp3.1, netstandard2.0
4 | storage: none
5 |
6 | nuget FSharp.Core = 4.7.0
7 | nuget Microsoft.Data.SqlClient
8 | nuget Fake.Core.CommandLineParsing
9 | nuget TaskBuilder.fs
10 | nuget Dapper
11 |
12 | group Build
13 | source https://api.nuget.org/v3/index.json
14 | framework: netstandard2.0
15 | storage: none
16 |
17 | nuget Fake.IO.FileSystem
18 | nuget Fake.Core.Target
19 | nuget Fake.DotNet.Cli
20 |
--------------------------------------------------------------------------------
/paket.lock:
--------------------------------------------------------------------------------
1 | STORAGE: NONE
2 | RESTRICTION: || (== netcoreapp3.1) (== netstandard2.0)
3 | NUGET
4 | remote: https://api.nuget.org/v3/index.json
5 | Dapper (2.0.78)
6 | System.Reflection.Emit.Lightweight (>= 4.7)
7 | Fake.Core.CommandLineParsing (5.19.1)
8 | FParsec (>= 1.0.3)
9 | FSharp.Core (>= 4.7)
10 | FParsec (1.1.1)
11 | FSharp.Core (>= 4.3.4)
12 | FSharp.Core (4.7)
13 | Microsoft.CSharp (4.5)
14 | Microsoft.Data.SqlClient (2.1)
15 | Microsoft.Data.SqlClient.SNI.runtime (>= 2.1.1)
16 | Microsoft.Identity.Client (>= 4.21.1)
17 | Microsoft.IdentityModel.JsonWebTokens (>= 6.8)
18 | Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 6.8)
19 | Microsoft.Win32.Registry (>= 4.7)
20 | System.Buffers (>= 4.5.1) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
21 | System.Configuration.ConfigurationManager (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
22 | System.Diagnostics.DiagnosticSource (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
23 | System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
24 | System.Runtime.Caching (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
25 | System.Security.Principal.Windows (>= 4.7)
26 | System.Text.Encoding.CodePages (>= 4.7)
27 | Microsoft.Data.SqlClient.SNI.runtime (2.1.1)
28 | Microsoft.Identity.Client (4.21.1)
29 | Microsoft.CSharp (>= 4.5) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
30 | NETStandard.Library (>= 1.6.1) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
31 | System.ComponentModel.TypeConverter (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
32 | System.Diagnostics.Process (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
33 | System.Dynamic.Runtime (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
34 | System.Private.Uri (>= 4.3.2) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
35 | System.Runtime.Serialization.Formatters (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
36 | System.Runtime.Serialization.Json (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (== netstandard2.0)
37 | System.Runtime.Serialization.Primitives (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
38 | System.Security.Cryptography.X509Certificates (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
39 | System.Security.SecureString (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid9.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
40 | System.Xml.XDocument (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (== netstandard2.0)
41 | System.Xml.XmlDocument (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
42 | Microsoft.IdentityModel.JsonWebTokens (6.8)
43 | Microsoft.IdentityModel.Tokens (>= 6.8)
44 | Microsoft.IdentityModel.Logging (6.8)
45 | Microsoft.IdentityModel.Protocols (6.8)
46 | Microsoft.IdentityModel.Logging (>= 6.8)
47 | Microsoft.IdentityModel.Tokens (>= 6.8)
48 | Microsoft.IdentityModel.Protocols.OpenIdConnect (6.8)
49 | Microsoft.IdentityModel.Protocols (>= 6.8)
50 | System.IdentityModel.Tokens.Jwt (>= 6.8)
51 | Microsoft.IdentityModel.Tokens (6.8)
52 | Microsoft.CSharp (>= 4.5)
53 | Microsoft.IdentityModel.Logging (>= 6.8)
54 | System.Security.Cryptography.Cng (>= 4.5)
55 | Microsoft.NETCore.Platforms (3.1)
56 | Microsoft.NETCore.Targets (1.1.3)
57 | Microsoft.Win32.Primitives (4.3)
58 | Microsoft.NETCore.Platforms (>= 1.1)
59 | Microsoft.NETCore.Targets (>= 1.1)
60 | System.Runtime (>= 4.3)
61 | Microsoft.Win32.Registry (4.7)
62 | System.Buffers (>= 4.5) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.0)
63 | System.Memory (>= 4.5.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.0)
64 | System.Security.AccessControl (>= 4.7)
65 | System.Security.Principal.Windows (>= 4.7)
66 | Microsoft.Win32.SystemEvents (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.1))
67 | Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.0))
68 | NETStandard.Library (1.6.1)
69 | Microsoft.NETCore.Platforms (>= 1.1)
70 | Microsoft.Win32.Primitives (>= 4.3)
71 | System.AppContext (>= 4.3)
72 | System.Collections (>= 4.3)
73 | System.Collections.Concurrent (>= 4.3)
74 | System.Console (>= 4.3)
75 | System.Diagnostics.Debug (>= 4.3)
76 | System.Diagnostics.Tools (>= 4.3)
77 | System.Diagnostics.Tracing (>= 4.3)
78 | System.Globalization (>= 4.3)
79 | System.Globalization.Calendars (>= 4.3)
80 | System.IO (>= 4.3)
81 | System.IO.Compression (>= 4.3)
82 | System.IO.Compression.ZipFile (>= 4.3)
83 | System.IO.FileSystem (>= 4.3)
84 | System.IO.FileSystem.Primitives (>= 4.3)
85 | System.Linq (>= 4.3)
86 | System.Linq.Expressions (>= 4.3)
87 | System.Net.Http (>= 4.3)
88 | System.Net.Primitives (>= 4.3)
89 | System.Net.Sockets (>= 4.3)
90 | System.ObjectModel (>= 4.3)
91 | System.Reflection (>= 4.3)
92 | System.Reflection.Extensions (>= 4.3)
93 | System.Reflection.Primitives (>= 4.3)
94 | System.Resources.ResourceManager (>= 4.3)
95 | System.Runtime (>= 4.3)
96 | System.Runtime.Extensions (>= 4.3)
97 | System.Runtime.Handles (>= 4.3)
98 | System.Runtime.InteropServices (>= 4.3)
99 | System.Runtime.InteropServices.RuntimeInformation (>= 4.3)
100 | System.Runtime.Numerics (>= 4.3)
101 | System.Security.Cryptography.Algorithms (>= 4.3)
102 | System.Security.Cryptography.Encoding (>= 4.3)
103 | System.Security.Cryptography.Primitives (>= 4.3)
104 | System.Security.Cryptography.X509Certificates (>= 4.3)
105 | System.Text.Encoding (>= 4.3)
106 | System.Text.Encoding.Extensions (>= 4.3)
107 | System.Text.RegularExpressions (>= 4.3)
108 | System.Threading (>= 4.3)
109 | System.Threading.Tasks (>= 4.3)
110 | System.Threading.Timer (>= 4.3)
111 | System.Xml.ReaderWriter (>= 4.3)
112 | System.Xml.XDocument (>= 4.3)
113 | runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
114 | runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
115 | runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
116 | runtime.native.System (4.3)
117 | Microsoft.NETCore.Platforms (>= 1.1)
118 | Microsoft.NETCore.Targets (>= 1.1)
119 | runtime.native.System.IO.Compression (4.3)
120 | Microsoft.NETCore.Platforms (>= 1.1)
121 | Microsoft.NETCore.Targets (>= 1.1)
122 | runtime.native.System.Net.Http (4.3)
123 | Microsoft.NETCore.Platforms (>= 1.1)
124 | Microsoft.NETCore.Targets (>= 1.1)
125 | runtime.native.System.Security.Cryptography.Apple (4.3)
126 | runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3)
127 | runtime.native.System.Security.Cryptography.OpenSsl (4.3)
128 | runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
129 | runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
130 | runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
131 | runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
132 | runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
133 | runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
134 | runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
135 | runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
136 | runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
137 | runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
138 | runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
139 | runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
140 | runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3)
141 | runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
142 | runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
143 | runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
144 | runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
145 | runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3)
146 | System.AppContext (4.3)
147 | System.Runtime (>= 4.3)
148 | System.Buffers (4.5.1)
149 | System.Collections (4.3)
150 | Microsoft.NETCore.Platforms (>= 1.1)
151 | Microsoft.NETCore.Targets (>= 1.1)
152 | System.Runtime (>= 4.3)
153 | System.Collections.Concurrent (4.3)
154 | System.Collections (>= 4.3)
155 | System.Diagnostics.Debug (>= 4.3)
156 | System.Diagnostics.Tracing (>= 4.3)
157 | System.Globalization (>= 4.3)
158 | System.Reflection (>= 4.3)
159 | System.Resources.ResourceManager (>= 4.3)
160 | System.Runtime (>= 4.3)
161 | System.Runtime.Extensions (>= 4.3)
162 | System.Threading (>= 4.3)
163 | System.Threading.Tasks (>= 4.3)
164 | System.Collections.NonGeneric (4.3) - restriction: || (&& (== netcoreapp3.1) (>= net462)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
165 | System.Diagnostics.Debug (>= 4.3)
166 | System.Globalization (>= 4.3)
167 | System.Resources.ResourceManager (>= 4.3)
168 | System.Runtime (>= 4.3)
169 | System.Runtime.Extensions (>= 4.3)
170 | System.Threading (>= 4.3)
171 | System.Collections.Specialized (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
172 | System.Collections.NonGeneric (>= 4.3)
173 | System.Globalization (>= 4.3)
174 | System.Globalization.Extensions (>= 4.3)
175 | System.Resources.ResourceManager (>= 4.3)
176 | System.Runtime (>= 4.3)
177 | System.Runtime.Extensions (>= 4.3)
178 | System.Threading (>= 4.3)
179 | System.ComponentModel (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard1.5)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
180 | System.Runtime (>= 4.3)
181 | System.ComponentModel.Primitives (4.3) - restriction: || (&& (== netcoreapp3.1) (>= net462)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard1.0) (>= win8)) (&& (== netcoreapp3.1) (< netstandard1.5)) (&& (== netcoreapp3.1) (>= wp8)) (&& (== netcoreapp3.1) (>= wpa81)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
182 | System.ComponentModel (>= 4.3)
183 | System.Resources.ResourceManager (>= 4.3)
184 | System.Runtime (>= 4.3)
185 | System.ComponentModel.TypeConverter (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
186 | System.Collections (>= 4.3)
187 | System.Collections.NonGeneric (>= 4.3)
188 | System.Collections.Specialized (>= 4.3)
189 | System.ComponentModel (>= 4.3)
190 | System.ComponentModel.Primitives (>= 4.3)
191 | System.Globalization (>= 4.3)
192 | System.Linq (>= 4.3)
193 | System.Reflection (>= 4.3)
194 | System.Reflection.Extensions (>= 4.3)
195 | System.Reflection.Primitives (>= 4.3)
196 | System.Reflection.TypeExtensions (>= 4.3)
197 | System.Resources.ResourceManager (>= 4.3)
198 | System.Runtime (>= 4.3)
199 | System.Runtime.Extensions (>= 4.3)
200 | System.Threading (>= 4.3)
201 | System.Configuration.ConfigurationManager (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
202 | System.Security.Cryptography.ProtectedData (>= 4.7)
203 | System.Security.Permissions (>= 4.7)
204 | System.Console (4.3)
205 | Microsoft.NETCore.Platforms (>= 1.1)
206 | Microsoft.NETCore.Targets (>= 1.1)
207 | System.IO (>= 4.3)
208 | System.Runtime (>= 4.3)
209 | System.Text.Encoding (>= 4.3)
210 | System.Diagnostics.Debug (4.3)
211 | Microsoft.NETCore.Platforms (>= 1.1)
212 | Microsoft.NETCore.Targets (>= 1.1)
213 | System.Runtime (>= 4.3)
214 | System.Diagnostics.DiagnosticSource (4.7)
215 | System.Diagnostics.Process (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
216 | Microsoft.NETCore.Platforms (>= 1.1)
217 | Microsoft.Win32.Primitives (>= 4.3)
218 | Microsoft.Win32.Registry (>= 4.3)
219 | runtime.native.System (>= 4.3)
220 | System.Collections (>= 4.3)
221 | System.Diagnostics.Debug (>= 4.3)
222 | System.Globalization (>= 4.3)
223 | System.IO (>= 4.3)
224 | System.IO.FileSystem (>= 4.3)
225 | System.IO.FileSystem.Primitives (>= 4.3)
226 | System.Resources.ResourceManager (>= 4.3)
227 | System.Runtime (>= 4.3)
228 | System.Runtime.Extensions (>= 4.3)
229 | System.Runtime.Handles (>= 4.3)
230 | System.Runtime.InteropServices (>= 4.3)
231 | System.Text.Encoding (>= 4.3)
232 | System.Text.Encoding.Extensions (>= 4.3)
233 | System.Threading (>= 4.3)
234 | System.Threading.Tasks (>= 4.3)
235 | System.Threading.Thread (>= 4.3)
236 | System.Threading.ThreadPool (>= 4.3)
237 | System.Diagnostics.Tools (4.3)
238 | Microsoft.NETCore.Platforms (>= 1.1)
239 | Microsoft.NETCore.Targets (>= 1.1)
240 | System.Runtime (>= 4.3)
241 | System.Diagnostics.Tracing (4.3)
242 | Microsoft.NETCore.Platforms (>= 1.1)
243 | Microsoft.NETCore.Targets (>= 1.1)
244 | System.Runtime (>= 4.3)
245 | System.Drawing.Common (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.1))
246 | Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.0))
247 | Microsoft.Win32.SystemEvents (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.0))
248 | System.Dynamic.Runtime (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
249 | System.Collections (>= 4.3)
250 | System.Diagnostics.Debug (>= 4.3)
251 | System.Linq (>= 4.3)
252 | System.Linq.Expressions (>= 4.3)
253 | System.ObjectModel (>= 4.3)
254 | System.Reflection (>= 4.3)
255 | System.Reflection.Emit (>= 4.3)
256 | System.Reflection.Emit.ILGeneration (>= 4.3)
257 | System.Reflection.Primitives (>= 4.3)
258 | System.Reflection.TypeExtensions (>= 4.3)
259 | System.Resources.ResourceManager (>= 4.3)
260 | System.Runtime (>= 4.3)
261 | System.Runtime.Extensions (>= 4.3)
262 | System.Threading (>= 4.3)
263 | System.Globalization (4.3)
264 | Microsoft.NETCore.Platforms (>= 1.1)
265 | Microsoft.NETCore.Targets (>= 1.1)
266 | System.Runtime (>= 4.3)
267 | System.Globalization.Calendars (4.3)
268 | Microsoft.NETCore.Platforms (>= 1.1)
269 | Microsoft.NETCore.Targets (>= 1.1)
270 | System.Globalization (>= 4.3)
271 | System.Runtime (>= 4.3)
272 | System.Globalization.Extensions (4.3)
273 | Microsoft.NETCore.Platforms (>= 1.1)
274 | System.Globalization (>= 4.3)
275 | System.Resources.ResourceManager (>= 4.3)
276 | System.Runtime (>= 4.3)
277 | System.Runtime.Extensions (>= 4.3)
278 | System.Runtime.InteropServices (>= 4.3)
279 | System.IdentityModel.Tokens.Jwt (6.8)
280 | Microsoft.IdentityModel.JsonWebTokens (>= 6.8)
281 | Microsoft.IdentityModel.Tokens (>= 6.8)
282 | System.IO (4.3)
283 | Microsoft.NETCore.Platforms (>= 1.1)
284 | Microsoft.NETCore.Targets (>= 1.1)
285 | System.Runtime (>= 4.3)
286 | System.Text.Encoding (>= 4.3)
287 | System.Threading.Tasks (>= 4.3)
288 | System.IO.Compression (4.3)
289 | Microsoft.NETCore.Platforms (>= 1.1)
290 | runtime.native.System (>= 4.3)
291 | runtime.native.System.IO.Compression (>= 4.3)
292 | System.Buffers (>= 4.3)
293 | System.Collections (>= 4.3)
294 | System.Diagnostics.Debug (>= 4.3)
295 | System.IO (>= 4.3)
296 | System.Resources.ResourceManager (>= 4.3)
297 | System.Runtime (>= 4.3)
298 | System.Runtime.Extensions (>= 4.3)
299 | System.Runtime.Handles (>= 4.3)
300 | System.Runtime.InteropServices (>= 4.3)
301 | System.Text.Encoding (>= 4.3)
302 | System.Threading (>= 4.3)
303 | System.Threading.Tasks (>= 4.3)
304 | System.IO.Compression.ZipFile (4.3)
305 | System.Buffers (>= 4.3)
306 | System.IO (>= 4.3)
307 | System.IO.Compression (>= 4.3)
308 | System.IO.FileSystem (>= 4.3)
309 | System.IO.FileSystem.Primitives (>= 4.3)
310 | System.Resources.ResourceManager (>= 4.3)
311 | System.Runtime (>= 4.3)
312 | System.Runtime.Extensions (>= 4.3)
313 | System.Text.Encoding (>= 4.3)
314 | System.IO.FileSystem (4.3)
315 | Microsoft.NETCore.Platforms (>= 1.1)
316 | Microsoft.NETCore.Targets (>= 1.1)
317 | System.IO (>= 4.3)
318 | System.IO.FileSystem.Primitives (>= 4.3)
319 | System.Runtime (>= 4.3)
320 | System.Runtime.Handles (>= 4.3)
321 | System.Text.Encoding (>= 4.3)
322 | System.Threading.Tasks (>= 4.3)
323 | System.IO.FileSystem.Primitives (4.3)
324 | System.Runtime (>= 4.3)
325 | System.Linq (4.3)
326 | System.Collections (>= 4.3)
327 | System.Diagnostics.Debug (>= 4.3)
328 | System.Resources.ResourceManager (>= 4.3)
329 | System.Runtime (>= 4.3)
330 | System.Runtime.Extensions (>= 4.3)
331 | System.Linq.Expressions (4.3)
332 | System.Collections (>= 4.3)
333 | System.Diagnostics.Debug (>= 4.3)
334 | System.Globalization (>= 4.3)
335 | System.IO (>= 4.3)
336 | System.Linq (>= 4.3)
337 | System.ObjectModel (>= 4.3)
338 | System.Reflection (>= 4.3)
339 | System.Reflection.Emit (>= 4.3)
340 | System.Reflection.Emit.ILGeneration (>= 4.3)
341 | System.Reflection.Emit.Lightweight (>= 4.3)
342 | System.Reflection.Extensions (>= 4.3)
343 | System.Reflection.Primitives (>= 4.3)
344 | System.Reflection.TypeExtensions (>= 4.3)
345 | System.Resources.ResourceManager (>= 4.3)
346 | System.Runtime (>= 4.3)
347 | System.Runtime.Extensions (>= 4.3)
348 | System.Threading (>= 4.3)
349 | System.Memory (4.5.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
350 | System.Buffers (>= 4.5.1) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netstandard1.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.0)
351 | System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.0)
352 | System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard1.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= uap10.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.0)
353 | System.Net.Http (4.3)
354 | Microsoft.NETCore.Platforms (>= 1.1)
355 | runtime.native.System (>= 4.3)
356 | runtime.native.System.Net.Http (>= 4.3)
357 | runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
358 | System.Collections (>= 4.3)
359 | System.Diagnostics.Debug (>= 4.3)
360 | System.Diagnostics.DiagnosticSource (>= 4.3)
361 | System.Diagnostics.Tracing (>= 4.3)
362 | System.Globalization (>= 4.3)
363 | System.Globalization.Extensions (>= 4.3)
364 | System.IO (>= 4.3)
365 | System.IO.FileSystem (>= 4.3)
366 | System.Net.Primitives (>= 4.3)
367 | System.Resources.ResourceManager (>= 4.3)
368 | System.Runtime (>= 4.3)
369 | System.Runtime.Extensions (>= 4.3)
370 | System.Runtime.Handles (>= 4.3)
371 | System.Runtime.InteropServices (>= 4.3)
372 | System.Security.Cryptography.Algorithms (>= 4.3)
373 | System.Security.Cryptography.Encoding (>= 4.3)
374 | System.Security.Cryptography.OpenSsl (>= 4.3)
375 | System.Security.Cryptography.Primitives (>= 4.3)
376 | System.Security.Cryptography.X509Certificates (>= 4.3)
377 | System.Text.Encoding (>= 4.3)
378 | System.Threading (>= 4.3)
379 | System.Threading.Tasks (>= 4.3)
380 | System.Net.Primitives (4.3)
381 | Microsoft.NETCore.Platforms (>= 1.1)
382 | Microsoft.NETCore.Targets (>= 1.1)
383 | System.Runtime (>= 4.3)
384 | System.Runtime.Handles (>= 4.3)
385 | System.Net.Sockets (4.3)
386 | Microsoft.NETCore.Platforms (>= 1.1)
387 | Microsoft.NETCore.Targets (>= 1.1)
388 | System.IO (>= 4.3)
389 | System.Net.Primitives (>= 4.3)
390 | System.Runtime (>= 4.3)
391 | System.Threading.Tasks (>= 4.3)
392 | System.Numerics.Vectors (4.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.0)
393 | System.ObjectModel (4.3)
394 | System.Collections (>= 4.3)
395 | System.Diagnostics.Debug (>= 4.3)
396 | System.Resources.ResourceManager (>= 4.3)
397 | System.Runtime (>= 4.3)
398 | System.Threading (>= 4.3)
399 | System.Private.DataContractSerialization (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (== netstandard2.0)
400 | System.Collections (>= 4.3)
401 | System.Collections.Concurrent (>= 4.3)
402 | System.Diagnostics.Debug (>= 4.3)
403 | System.Globalization (>= 4.3)
404 | System.IO (>= 4.3)
405 | System.Linq (>= 4.3)
406 | System.Reflection (>= 4.3)
407 | System.Reflection.Emit.ILGeneration (>= 4.3)
408 | System.Reflection.Emit.Lightweight (>= 4.3)
409 | System.Reflection.Extensions (>= 4.3)
410 | System.Reflection.Primitives (>= 4.3)
411 | System.Reflection.TypeExtensions (>= 4.3)
412 | System.Resources.ResourceManager (>= 4.3)
413 | System.Runtime (>= 4.3)
414 | System.Runtime.Extensions (>= 4.3)
415 | System.Runtime.Serialization.Primitives (>= 4.3)
416 | System.Text.Encoding (>= 4.3)
417 | System.Text.Encoding.Extensions (>= 4.3)
418 | System.Text.RegularExpressions (>= 4.3)
419 | System.Threading (>= 4.3)
420 | System.Threading.Tasks (>= 4.3)
421 | System.Xml.ReaderWriter (>= 4.3)
422 | System.Xml.XDocument (>= 4.3)
423 | System.Xml.XmlDocument (>= 4.3)
424 | System.Xml.XmlSerializer (>= 4.3)
425 | System.Private.Uri (4.3.2) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
426 | Microsoft.NETCore.Platforms (>= 1.1.1)
427 | Microsoft.NETCore.Targets (>= 1.1.3)
428 | System.Reflection (4.3)
429 | Microsoft.NETCore.Platforms (>= 1.1)
430 | Microsoft.NETCore.Targets (>= 1.1)
431 | System.IO (>= 4.3)
432 | System.Reflection.Primitives (>= 4.3)
433 | System.Runtime (>= 4.3)
434 | System.Reflection.Emit (4.3)
435 | System.IO (>= 4.3)
436 | System.Reflection (>= 4.3)
437 | System.Reflection.Emit.ILGeneration (>= 4.3)
438 | System.Reflection.Primitives (>= 4.3)
439 | System.Runtime (>= 4.3)
440 | System.Reflection.Emit.ILGeneration (4.7)
441 | System.Reflection.Emit.Lightweight (4.7)
442 | System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0) (< netstandard2.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (< portable-net45+wp8)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.0)
443 | System.Reflection.Extensions (4.3)
444 | Microsoft.NETCore.Platforms (>= 1.1)
445 | Microsoft.NETCore.Targets (>= 1.1)
446 | System.Reflection (>= 4.3)
447 | System.Runtime (>= 4.3)
448 | System.Reflection.Primitives (4.3)
449 | Microsoft.NETCore.Platforms (>= 1.1)
450 | Microsoft.NETCore.Targets (>= 1.1)
451 | System.Runtime (>= 4.3)
452 | System.Reflection.TypeExtensions (4.3)
453 | System.Reflection (>= 4.3)
454 | System.Runtime (>= 4.3)
455 | System.Resources.ResourceManager (4.3)
456 | Microsoft.NETCore.Platforms (>= 1.1)
457 | Microsoft.NETCore.Targets (>= 1.1)
458 | System.Globalization (>= 4.3)
459 | System.Reflection (>= 4.3)
460 | System.Runtime (>= 4.3)
461 | System.Runtime (4.3)
462 | Microsoft.NETCore.Platforms (>= 1.1)
463 | Microsoft.NETCore.Targets (>= 1.1)
464 | System.Runtime.Caching (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
465 | System.Configuration.ConfigurationManager (>= 4.7)
466 | System.Runtime.CompilerServices.Unsafe (4.7) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.0)
467 | System.Runtime.Extensions (4.3)
468 | Microsoft.NETCore.Platforms (>= 1.1)
469 | Microsoft.NETCore.Targets (>= 1.1)
470 | System.Runtime (>= 4.3)
471 | System.Runtime.Handles (4.3)
472 | Microsoft.NETCore.Platforms (>= 1.1)
473 | Microsoft.NETCore.Targets (>= 1.1)
474 | System.Runtime (>= 4.3)
475 | System.Runtime.InteropServices (4.3)
476 | Microsoft.NETCore.Platforms (>= 1.1)
477 | Microsoft.NETCore.Targets (>= 1.1)
478 | System.Reflection (>= 4.3)
479 | System.Reflection.Primitives (>= 4.3)
480 | System.Runtime (>= 4.3)
481 | System.Runtime.Handles (>= 4.3)
482 | System.Runtime.InteropServices.RuntimeInformation (4.3)
483 | runtime.native.System (>= 4.3)
484 | System.Reflection (>= 4.3)
485 | System.Reflection.Extensions (>= 4.3)
486 | System.Resources.ResourceManager (>= 4.3)
487 | System.Runtime (>= 4.3)
488 | System.Runtime.InteropServices (>= 4.3)
489 | System.Threading (>= 4.3)
490 | System.Runtime.Numerics (4.3)
491 | System.Globalization (>= 4.3)
492 | System.Resources.ResourceManager (>= 4.3)
493 | System.Runtime (>= 4.3)
494 | System.Runtime.Extensions (>= 4.3)
495 | System.Runtime.Serialization.Formatters (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
496 | System.Collections (>= 4.3)
497 | System.Reflection (>= 4.3)
498 | System.Resources.ResourceManager (>= 4.3)
499 | System.Runtime (>= 4.3)
500 | System.Runtime.Serialization.Primitives (>= 4.3)
501 | System.Runtime.Serialization.Json (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (== netstandard2.0)
502 | System.IO (>= 4.3)
503 | System.Private.DataContractSerialization (>= 4.3)
504 | System.Runtime (>= 4.3)
505 | System.Runtime.Serialization.Primitives (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
506 | System.Resources.ResourceManager (>= 4.3)
507 | System.Runtime (>= 4.3)
508 | System.Security.AccessControl (4.7)
509 | Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.0))
510 | System.Security.Principal.Windows (>= 4.7)
511 | System.Security.Cryptography.Algorithms (4.3)
512 | Microsoft.NETCore.Platforms (>= 1.1)
513 | runtime.native.System.Security.Cryptography.Apple (>= 4.3)
514 | runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
515 | System.Collections (>= 4.3)
516 | System.IO (>= 4.3)
517 | System.Resources.ResourceManager (>= 4.3)
518 | System.Runtime (>= 4.3)
519 | System.Runtime.Extensions (>= 4.3)
520 | System.Runtime.Handles (>= 4.3)
521 | System.Runtime.InteropServices (>= 4.3)
522 | System.Runtime.Numerics (>= 4.3)
523 | System.Security.Cryptography.Encoding (>= 4.3)
524 | System.Security.Cryptography.Primitives (>= 4.3)
525 | System.Text.Encoding (>= 4.3)
526 | System.Security.Cryptography.Cng (4.5)
527 | System.Security.Cryptography.Csp (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
528 | Microsoft.NETCore.Platforms (>= 1.1)
529 | System.IO (>= 4.3)
530 | System.Reflection (>= 4.3)
531 | System.Resources.ResourceManager (>= 4.3)
532 | System.Runtime (>= 4.3)
533 | System.Runtime.Extensions (>= 4.3)
534 | System.Runtime.Handles (>= 4.3)
535 | System.Runtime.InteropServices (>= 4.3)
536 | System.Security.Cryptography.Algorithms (>= 4.3)
537 | System.Security.Cryptography.Encoding (>= 4.3)
538 | System.Security.Cryptography.Primitives (>= 4.3)
539 | System.Text.Encoding (>= 4.3)
540 | System.Threading (>= 4.3)
541 | System.Security.Cryptography.Encoding (4.3)
542 | Microsoft.NETCore.Platforms (>= 1.1)
543 | runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
544 | System.Collections (>= 4.3)
545 | System.Collections.Concurrent (>= 4.3)
546 | System.Linq (>= 4.3)
547 | System.Resources.ResourceManager (>= 4.3)
548 | System.Runtime (>= 4.3)
549 | System.Runtime.Extensions (>= 4.3)
550 | System.Runtime.Handles (>= 4.3)
551 | System.Runtime.InteropServices (>= 4.3)
552 | System.Security.Cryptography.Primitives (>= 4.3)
553 | System.Text.Encoding (>= 4.3)
554 | System.Security.Cryptography.OpenSsl (4.3)
555 | runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
556 | System.Collections (>= 4.3)
557 | System.IO (>= 4.3)
558 | System.Resources.ResourceManager (>= 4.3)
559 | System.Runtime (>= 4.3)
560 | System.Runtime.Extensions (>= 4.3)
561 | System.Runtime.Handles (>= 4.3)
562 | System.Runtime.InteropServices (>= 4.3)
563 | System.Runtime.Numerics (>= 4.3)
564 | System.Security.Cryptography.Algorithms (>= 4.3)
565 | System.Security.Cryptography.Encoding (>= 4.3)
566 | System.Security.Cryptography.Primitives (>= 4.3)
567 | System.Text.Encoding (>= 4.3)
568 | System.Security.Cryptography.Primitives (4.3)
569 | System.Diagnostics.Debug (>= 4.3)
570 | System.Globalization (>= 4.3)
571 | System.IO (>= 4.3)
572 | System.Resources.ResourceManager (>= 4.3)
573 | System.Runtime (>= 4.3)
574 | System.Threading (>= 4.3)
575 | System.Threading.Tasks (>= 4.3)
576 | System.Security.Cryptography.ProtectedData (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
577 | System.Security.Cryptography.X509Certificates (4.3)
578 | Microsoft.NETCore.Platforms (>= 1.1)
579 | runtime.native.System (>= 4.3)
580 | runtime.native.System.Net.Http (>= 4.3)
581 | runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3)
582 | System.Collections (>= 4.3)
583 | System.Diagnostics.Debug (>= 4.3)
584 | System.Globalization (>= 4.3)
585 | System.Globalization.Calendars (>= 4.3)
586 | System.IO (>= 4.3)
587 | System.IO.FileSystem (>= 4.3)
588 | System.IO.FileSystem.Primitives (>= 4.3)
589 | System.Resources.ResourceManager (>= 4.3)
590 | System.Runtime (>= 4.3)
591 | System.Runtime.Extensions (>= 4.3)
592 | System.Runtime.Handles (>= 4.3)
593 | System.Runtime.InteropServices (>= 4.3)
594 | System.Runtime.Numerics (>= 4.3)
595 | System.Security.Cryptography.Algorithms (>= 4.3)
596 | System.Security.Cryptography.Cng (>= 4.3)
597 | System.Security.Cryptography.Csp (>= 4.3)
598 | System.Security.Cryptography.Encoding (>= 4.3)
599 | System.Security.Cryptography.OpenSsl (>= 4.3)
600 | System.Security.Cryptography.Primitives (>= 4.3)
601 | System.Text.Encoding (>= 4.3)
602 | System.Threading (>= 4.3)
603 | System.Security.Permissions (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= netcoreapp3.1))
604 | System.Security.AccessControl (>= 4.7)
605 | System.Windows.Extensions (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp3.0))
606 | System.Security.Principal.Windows (4.7)
607 | System.Security.SecureString (4.3) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid9.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
608 | Microsoft.NETCore.Platforms (>= 1.1)
609 | System.Resources.ResourceManager (>= 4.3)
610 | System.Runtime (>= 4.3)
611 | System.Runtime.Handles (>= 4.3)
612 | System.Runtime.InteropServices (>= 4.3)
613 | System.Security.Cryptography.Primitives (>= 4.3)
614 | System.Text.Encoding (>= 4.3)
615 | System.Threading (>= 4.3)
616 | System.Text.Encoding (4.3)
617 | Microsoft.NETCore.Platforms (>= 1.1)
618 | Microsoft.NETCore.Targets (>= 1.1)
619 | System.Runtime (>= 4.3)
620 | System.Text.Encoding.CodePages (4.7)
621 | Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp2.0))
622 | System.Runtime.CompilerServices.Unsafe (>= 4.7) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.0)
623 | System.Text.Encoding.Extensions (4.3)
624 | Microsoft.NETCore.Platforms (>= 1.1)
625 | Microsoft.NETCore.Targets (>= 1.1)
626 | System.Runtime (>= 4.3)
627 | System.Text.Encoding (>= 4.3)
628 | System.Text.RegularExpressions (4.3)
629 | System.Collections (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp1.1)) (== netstandard2.0)
630 | System.Globalization (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp1.1)) (== netstandard2.0)
631 | System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp1.1)) (== netstandard2.0)
632 | System.Runtime (>= 4.3)
633 | System.Runtime.Extensions (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp1.1)) (== netstandard2.0)
634 | System.Threading (>= 4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp1.1)) (== netstandard2.0)
635 | System.Threading (4.3)
636 | System.Runtime (>= 4.3)
637 | System.Threading.Tasks (>= 4.3)
638 | System.Threading.Tasks (4.3)
639 | Microsoft.NETCore.Platforms (>= 1.1)
640 | Microsoft.NETCore.Targets (>= 1.1)
641 | System.Runtime (>= 4.3)
642 | System.Threading.Tasks.Extensions (4.3)
643 | System.Collections (>= 4.3)
644 | System.Runtime (>= 4.3)
645 | System.Threading.Tasks (>= 4.3)
646 | System.Threading.Thread (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
647 | System.Runtime (>= 4.3)
648 | System.Threading.ThreadPool (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.0)
649 | System.Runtime (>= 4.3)
650 | System.Runtime.Handles (>= 4.3)
651 | System.Threading.Timer (4.3)
652 | Microsoft.NETCore.Platforms (>= 1.1)
653 | Microsoft.NETCore.Targets (>= 1.1)
654 | System.Runtime (>= 4.3)
655 | System.ValueTuple (4.4)
656 | System.Windows.Extensions (4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= netcoreapp3.1))
657 | System.Drawing.Common (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.0) (>= netcoreapp3.0))
658 | System.Xml.ReaderWriter (4.3)
659 | System.Collections (>= 4.3)
660 | System.Diagnostics.Debug (>= 4.3)
661 | System.Globalization (>= 4.3)
662 | System.IO (>= 4.3)
663 | System.IO.FileSystem (>= 4.3)
664 | System.IO.FileSystem.Primitives (>= 4.3)
665 | System.Resources.ResourceManager (>= 4.3)
666 | System.Runtime (>= 4.3)
667 | System.Runtime.Extensions (>= 4.3)
668 | System.Runtime.InteropServices (>= 4.3)
669 | System.Text.Encoding (>= 4.3)
670 | System.Text.Encoding.Extensions (>= 4.3)
671 | System.Text.RegularExpressions (>= 4.3)
672 | System.Threading.Tasks (>= 4.3)
673 | System.Threading.Tasks.Extensions (>= 4.3)
674 | System.Xml.XDocument (4.3)
675 | System.Collections (>= 4.3)
676 | System.Diagnostics.Debug (>= 4.3)
677 | System.Diagnostics.Tools (>= 4.3)
678 | System.Globalization (>= 4.3)
679 | System.IO (>= 4.3)
680 | System.Reflection (>= 4.3)
681 | System.Resources.ResourceManager (>= 4.3)
682 | System.Runtime (>= 4.3)
683 | System.Runtime.Extensions (>= 4.3)
684 | System.Text.Encoding (>= 4.3)
685 | System.Threading (>= 4.3)
686 | System.Xml.ReaderWriter (>= 4.3)
687 | System.Xml.XmlDocument (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (== netstandard2.0)
688 | System.Collections (>= 4.3)
689 | System.Diagnostics.Debug (>= 4.3)
690 | System.Globalization (>= 4.3)
691 | System.IO (>= 4.3)
692 | System.Resources.ResourceManager (>= 4.3)
693 | System.Runtime (>= 4.3)
694 | System.Runtime.Extensions (>= 4.3)
695 | System.Text.Encoding (>= 4.3)
696 | System.Threading (>= 4.3)
697 | System.Xml.ReaderWriter (>= 4.3)
698 | System.Xml.XmlSerializer (4.3) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.0)) (== netstandard2.0)
699 | System.Collections (>= 4.3)
700 | System.Globalization (>= 4.3)
701 | System.IO (>= 4.3)
702 | System.Linq (>= 4.3)
703 | System.Reflection (>= 4.3)
704 | System.Reflection.Emit (>= 4.3)
705 | System.Reflection.Emit.ILGeneration (>= 4.3)
706 | System.Reflection.Extensions (>= 4.3)
707 | System.Reflection.Primitives (>= 4.3)
708 | System.Reflection.TypeExtensions (>= 4.3)
709 | System.Resources.ResourceManager (>= 4.3)
710 | System.Runtime (>= 4.3)
711 | System.Runtime.Extensions (>= 4.3)
712 | System.Text.RegularExpressions (>= 4.3)
713 | System.Threading (>= 4.3)
714 | System.Xml.ReaderWriter (>= 4.3)
715 | System.Xml.XmlDocument (>= 4.3)
716 | TaskBuilder.fs (2.1)
717 | FSharp.Core (>= 4.1.17)
718 | NETStandard.Library (>= 1.6.1)
719 | System.ValueTuple (>= 4.4)
720 |
721 | GROUP Build
722 | STORAGE: NONE
723 | RESTRICTION: == netstandard2.0
724 | NUGET
725 | remote: https://api.nuget.org/v3/index.json
726 | BlackFox.VsWhere (1.1)
727 | FSharp.Core (>= 4.2.3)
728 | Microsoft.Win32.Registry (>= 4.7)
729 | Fake.Core.CommandLineParsing (5.20.3)
730 | FParsec (>= 1.1.1)
731 | FSharp.Core (>= 4.7.2)
732 | Fake.Core.Context (5.20.3)
733 | FSharp.Core (>= 4.7.2)
734 | Fake.Core.Environment (5.20.3)
735 | FSharp.Core (>= 4.7.2)
736 | Fake.Core.FakeVar (5.20.3)
737 | Fake.Core.Context (>= 5.20.3)
738 | FSharp.Core (>= 4.7.2)
739 | Fake.Core.Process (5.20.3)
740 | Fake.Core.Environment (>= 5.20.3)
741 | Fake.Core.FakeVar (>= 5.20.3)
742 | Fake.Core.String (>= 5.20.3)
743 | Fake.Core.Trace (>= 5.20.3)
744 | Fake.IO.FileSystem (>= 5.20.3)
745 | FSharp.Core (>= 4.7.2)
746 | System.Collections.Immutable (>= 1.7.1)
747 | Fake.Core.SemVer (5.20.3)
748 | FSharp.Core (>= 4.7.2)
749 | Fake.Core.String (5.20.3)
750 | FSharp.Core (>= 4.7.2)
751 | Fake.Core.Target (5.20.3)
752 | Fake.Core.CommandLineParsing (>= 5.20.3)
753 | Fake.Core.Context (>= 5.20.3)
754 | Fake.Core.Environment (>= 5.20.3)
755 | Fake.Core.FakeVar (>= 5.20.3)
756 | Fake.Core.Process (>= 5.20.3)
757 | Fake.Core.String (>= 5.20.3)
758 | Fake.Core.Trace (>= 5.20.3)
759 | FSharp.Control.Reactive (>= 4.4.2)
760 | FSharp.Core (>= 4.7.2)
761 | Fake.Core.Tasks (5.20.3)
762 | Fake.Core.Trace (>= 5.20.3)
763 | FSharp.Core (>= 4.7.2)
764 | Fake.Core.Trace (5.20.3)
765 | Fake.Core.Environment (>= 5.20.3)
766 | Fake.Core.FakeVar (>= 5.20.3)
767 | FSharp.Core (>= 4.7.2)
768 | Fake.Core.Xml (5.20.3)
769 | Fake.Core.String (>= 5.20.3)
770 | FSharp.Core (>= 4.7.2)
771 | Fake.DotNet.Cli (5.20.3)
772 | Fake.Core.Environment (>= 5.20.3)
773 | Fake.Core.Process (>= 5.20.3)
774 | Fake.Core.String (>= 5.20.3)
775 | Fake.Core.Trace (>= 5.20.3)
776 | Fake.DotNet.MSBuild (>= 5.20.3)
777 | Fake.DotNet.NuGet (>= 5.20.3)
778 | Fake.IO.FileSystem (>= 5.20.3)
779 | FSharp.Core (>= 4.7.2)
780 | Mono.Posix.NETStandard (>= 1.0)
781 | Newtonsoft.Json (>= 12.0.3)
782 | Fake.DotNet.MSBuild (5.20.3)
783 | BlackFox.VsWhere (>= 1.1)
784 | Fake.Core.Environment (>= 5.20.3)
785 | Fake.Core.Process (>= 5.20.3)
786 | Fake.Core.String (>= 5.20.3)
787 | Fake.Core.Trace (>= 5.20.3)
788 | Fake.IO.FileSystem (>= 5.20.3)
789 | FSharp.Core (>= 4.7.2)
790 | MSBuild.StructuredLogger (>= 2.1.176)
791 | Fake.DotNet.NuGet (5.20.3)
792 | Fake.Core.Environment (>= 5.20.3)
793 | Fake.Core.Process (>= 5.20.3)
794 | Fake.Core.SemVer (>= 5.20.3)
795 | Fake.Core.String (>= 5.20.3)
796 | Fake.Core.Tasks (>= 5.20.3)
797 | Fake.Core.Trace (>= 5.20.3)
798 | Fake.Core.Xml (>= 5.20.3)
799 | Fake.IO.FileSystem (>= 5.20.3)
800 | Fake.Net.Http (>= 5.20.3)
801 | FSharp.Core (>= 4.7.2)
802 | Newtonsoft.Json (>= 12.0.3)
803 | NuGet.Protocol (>= 5.6)
804 | Fake.IO.FileSystem (5.20.3)
805 | Fake.Core.String (>= 5.20.3)
806 | FSharp.Core (>= 4.7.2)
807 | Fake.Net.Http (5.20.3)
808 | Fake.Core.Trace (>= 5.20.3)
809 | FSharp.Core (>= 4.7.2)
810 | FParsec (1.1.1)
811 | FSharp.Core (>= 4.3.4)
812 | FSharp.Control.Reactive (4.4.2)
813 | FSharp.Core (>= 4.7.2)
814 | System.Reactive (>= 4.4.1)
815 | FSharp.Core (5.0)
816 | Microsoft.Build (16.8)
817 | Microsoft.Build.Framework (16.8)
818 | System.Security.Permissions (>= 4.7)
819 | Microsoft.Build.Tasks.Core (16.8)
820 | Microsoft.Build.Framework (>= 16.8)
821 | Microsoft.Build.Utilities.Core (>= 16.8)
822 | Microsoft.Win32.Registry (>= 4.3)
823 | System.CodeDom (>= 4.4)
824 | System.Collections.Immutable (>= 1.5)
825 | System.Reflection.Metadata (>= 1.6)
826 | System.Reflection.TypeExtensions (>= 4.1)
827 | System.Resources.Extensions (>= 4.6)
828 | System.Runtime.InteropServices (>= 4.3)
829 | System.Security.Cryptography.Pkcs (>= 4.7)
830 | System.Security.Cryptography.Xml (>= 4.7)
831 | System.Security.Permissions (>= 4.7)
832 | System.Threading.Tasks.Dataflow (>= 4.9)
833 | Microsoft.Build.Utilities.Core (16.8)
834 | Microsoft.Build.Framework (>= 16.8)
835 | Microsoft.Win32.Registry (>= 4.3)
836 | System.Collections.Immutable (>= 1.5)
837 | System.Security.Permissions (>= 4.7)
838 | System.Text.Encoding.CodePages (>= 4.0.1)
839 | Microsoft.NETCore.Platforms (5.0)
840 | Microsoft.NETCore.Targets (5.0)
841 | Microsoft.Win32.Registry (5.0)
842 | System.Buffers (>= 4.5.1)
843 | System.Memory (>= 4.5.4)
844 | System.Security.AccessControl (>= 5.0)
845 | System.Security.Principal.Windows (>= 5.0)
846 | Mono.Posix.NETStandard (1.0)
847 | MSBuild.StructuredLogger (2.1.215)
848 | Microsoft.Build (>= 16.4)
849 | Microsoft.Build.Framework (>= 16.4)
850 | Microsoft.Build.Tasks.Core (>= 16.4)
851 | Microsoft.Build.Utilities.Core (>= 16.4)
852 | Newtonsoft.Json (12.0.3)
853 | NuGet.Common (5.8)
854 | NuGet.Frameworks (>= 5.8)
855 | NuGet.Configuration (5.8)
856 | NuGet.Common (>= 5.8)
857 | System.Security.Cryptography.ProtectedData (>= 4.4)
858 | NuGet.Frameworks (5.8)
859 | NuGet.Packaging (5.8)
860 | Newtonsoft.Json (>= 9.0.1)
861 | NuGet.Configuration (>= 5.8)
862 | NuGet.Versioning (>= 5.8)
863 | System.Security.Cryptography.Cng (>= 5.0.0-preview.3.20214.6)
864 | System.Security.Cryptography.Pkcs (>= 5.0.0-preview.3.20214.6)
865 | NuGet.Protocol (5.8)
866 | NuGet.Packaging (>= 5.8)
867 | NuGet.Versioning (5.8)
868 | System.Buffers (4.5.1)
869 | System.CodeDom (5.0)
870 | System.Collections.Immutable (5.0)
871 | System.Memory (>= 4.5.4)
872 | System.Formats.Asn1 (5.0)
873 | System.Buffers (>= 4.5.1)
874 | System.Memory (>= 4.5.4)
875 | System.IO (4.3)
876 | Microsoft.NETCore.Platforms (>= 1.1)
877 | Microsoft.NETCore.Targets (>= 1.1)
878 | System.Runtime (>= 4.3)
879 | System.Text.Encoding (>= 4.3)
880 | System.Threading.Tasks (>= 4.3)
881 | System.Memory (4.5.4)
882 | System.Buffers (>= 4.5.1)
883 | System.Numerics.Vectors (>= 4.4)
884 | System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
885 | System.Numerics.Vectors (4.5)
886 | System.Reactive (5.0)
887 | System.Runtime.InteropServices.WindowsRuntime (>= 4.3)
888 | System.Threading.Tasks.Extensions (>= 4.5.4)
889 | System.Reflection (4.3)
890 | Microsoft.NETCore.Platforms (>= 1.1)
891 | Microsoft.NETCore.Targets (>= 1.1)
892 | System.IO (>= 4.3)
893 | System.Reflection.Primitives (>= 4.3)
894 | System.Runtime (>= 4.3)
895 | System.Reflection.Metadata (5.0)
896 | System.Collections.Immutable (>= 5.0)
897 | System.Reflection.Primitives (4.3)
898 | Microsoft.NETCore.Platforms (>= 1.1)
899 | Microsoft.NETCore.Targets (>= 1.1)
900 | System.Runtime (>= 4.3)
901 | System.Reflection.TypeExtensions (4.7)
902 | System.Resources.Extensions (5.0)
903 | System.Memory (>= 4.5.4)
904 | System.Runtime (4.3.1)
905 | Microsoft.NETCore.Platforms (>= 1.1.1)
906 | Microsoft.NETCore.Targets (>= 1.1.3)
907 | System.Runtime.CompilerServices.Unsafe (5.0)
908 | System.Runtime.Handles (4.3)
909 | Microsoft.NETCore.Platforms (>= 1.1)
910 | Microsoft.NETCore.Targets (>= 1.1)
911 | System.Runtime (>= 4.3)
912 | System.Runtime.InteropServices (4.3)
913 | Microsoft.NETCore.Platforms (>= 1.1)
914 | Microsoft.NETCore.Targets (>= 1.1)
915 | System.Reflection (>= 4.3)
916 | System.Reflection.Primitives (>= 4.3)
917 | System.Runtime (>= 4.3)
918 | System.Runtime.Handles (>= 4.3)
919 | System.Runtime.InteropServices.WindowsRuntime (4.3)
920 | System.Runtime (>= 4.3)
921 | System.Security.AccessControl (5.0)
922 | System.Security.Principal.Windows (>= 5.0)
923 | System.Security.Cryptography.Cng (5.0)
924 | System.Security.Cryptography.Pkcs (5.0)
925 | System.Buffers (>= 4.5.1)
926 | System.Formats.Asn1 (>= 5.0)
927 | System.Memory (>= 4.5.4)
928 | System.Security.Cryptography.Cng (>= 5.0)
929 | System.Security.Cryptography.ProtectedData (5.0)
930 | System.Memory (>= 4.5.4)
931 | System.Security.Cryptography.Xml (5.0)
932 | System.Memory (>= 4.5.4)
933 | System.Security.Cryptography.Pkcs (>= 5.0)
934 | System.Security.Permissions (>= 5.0)
935 | System.Security.Permissions (5.0)
936 | System.Security.AccessControl (>= 5.0)
937 | System.Security.Principal.Windows (5.0)
938 | System.Text.Encoding (4.3)
939 | Microsoft.NETCore.Platforms (>= 1.1)
940 | Microsoft.NETCore.Targets (>= 1.1)
941 | System.Runtime (>= 4.3)
942 | System.Text.Encoding.CodePages (5.0)
943 | System.Runtime.CompilerServices.Unsafe (>= 5.0)
944 | System.Threading.Tasks (4.3)
945 | Microsoft.NETCore.Platforms (>= 1.1)
946 | Microsoft.NETCore.Targets (>= 1.1)
947 | System.Runtime (>= 4.3)
948 | System.Threading.Tasks.Dataflow (5.0)
949 | System.Threading.Tasks.Extensions (4.5.4)
950 | System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
951 |
--------------------------------------------------------------------------------
/src/SQLDumper.Tool/Program.fs:
--------------------------------------------------------------------------------
1 | module SQLDumper.Tool.Program
2 |
3 | open System
4 | open Fake.Core
5 | open SQLDumper
6 |
7 | // CLI interface definition
8 | let cli =
9 | """
10 | USAGE:
11 | sqldump (-h | --help)
12 | sqldump [options]
13 |
14 | OPTIONS [options]:
15 | -h --help Shows help
16 | --usego Use GO statements [default: True]
17 | --statements Number of statements in transaction [default: 1000]
18 | --rows Number of rows in transaction [default: 100]
19 | --ignore Tables to ignore when doing SQL dump (use comma for more tables separation)
20 | """
21 |
22 | []
23 | module DocoptResult =
24 | let getArgument arg map =
25 | map
26 | |> DocoptResult.tryGetArgument arg
27 | |> Option.defaultWith (fun _ -> failwithf "Missing required argument %s." arg)
28 |
29 | []
30 | let main argv =
31 | try
32 | let cliArgs = Docopt(cli).Parse(argv)
33 | if cliArgs |> DocoptResult.hasFlag "-h"
34 | then
35 | printfn "%s" cli
36 | 0
37 | else
38 | let connString = cliArgs |> DocoptResult.getArgument ""
39 | let outputFile = cliArgs |> DocoptResult.getArgument ""
40 | let useGo = cliArgs |> DocoptResult.getArgument "--usego" |> Boolean.Parse
41 | let statements = cliArgs |> DocoptResult.getArgument "--statements" |> int
42 | let rows = cliArgs |> DocoptResult.getArgument "--rows" |> int
43 | let ignores =
44 | cliArgs
45 | |> DocoptResult.tryGetArgument "--ignore"
46 | |> Option.map (fun x -> x.Split(",", StringSplitOptions.RemoveEmptyEntries))
47 | |> Option.map Array.toList
48 | |> Option.defaultValue []
49 | try
50 | SQLDumper.init connString
51 | |> SQLDumper.useGoStatements useGo
52 | |> SQLDumper.statementsInTransaction statements
53 | |> SQLDumper.rowsInStatement rows
54 | |> SQLDumper.ignoreTables ignores
55 | |> MSSQL.dumpToFile outputFile
56 | |> Async.AwaitTask
57 | |> Async.RunSynchronously
58 |
59 | Console.ForegroundColor <- ConsoleColor.Green
60 | printfn "Database successfully dumped into %s" outputFile
61 | 0
62 | with ex ->
63 | Console.ForegroundColor <- ConsoleColor.Red
64 | eprintfn "Exception occured: %s" ex.Message
65 | 1
66 | with ex ->
67 | Console.ForegroundColor <- ConsoleColor.Red
68 | printfn "Error while parsing command line, usage is:"
69 | printfn "%s" cli
70 | eprintfn "Exception occured: %s" ex.Message
71 | 1
--------------------------------------------------------------------------------
/src/SQLDumper.Tool/SQLDumper.Tool.fsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | netcoreapp3.1
6 | true
7 | sqldump
8 | Major
9 | SQLDumper.Tool
10 | Dump your MSSQL database into file or stream
11 | https://github.com/Dzoukr/SQLDumper
12 | https://github.com/Dzoukr/SQLDumper/blob/master/LICENSE
13 | fsharp;database;mssql;dump;tools
14 | Roman Provazník
15 | 1.1.0
16 | Using RollForward for dotnet tool
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/SQLDumper.Tool/paket.references:
--------------------------------------------------------------------------------
1 | FSharp.Core
2 | Fake.Core.CommandLineParsing
3 | Microsoft.Data.SqlClient
--------------------------------------------------------------------------------
/src/SQLDumper/MSSQL.fs:
--------------------------------------------------------------------------------
1 | module SQLDumper.MSSQL
2 |
3 | open System
4 | open System.Data
5 | open System.Data.Common
6 | open System.Data.SqlTypes
7 | open System.Globalization
8 | open System.IO
9 | open System.Text
10 | open System.Linq
11 | open System.Threading.Tasks
12 | open Dapper
13 | open FSharp.Control.Tasks.V2
14 | open Microsoft.Data.SqlClient
15 |
16 | module internal SqlCommands =
17 | type GetTablesRow = { TABLE_SCHEMA : string; TABLE_NAME : string }
18 | let getTables =
19 | """
20 | SELECT TABLE_SCHEMA, TABLE_NAME
21 | FROM INFORMATION_SCHEMA.TABLES
22 | WHERE TABLE_TYPE='BASE TABLE'
23 | """
24 |
25 | type GetColumnsRow = { COLUMN_NAME:string; DATA_TYPE:string; ORDINAL_POSITION:int }
26 | let getColumns =
27 | """
28 | SELECT c.COLUMN_NAME, c.DATA_TYPE, k.ORDINAL_POSITION
29 | FROM INFORMATION_SCHEMA.COLUMNS c
30 | LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE k ON
31 | c.TABLE_SCHEMA = k.TABLE_SCHEMA AND
32 | c.TABLE_NAME = k.TABLE_NAME AND
33 | c.COLUMN_NAME = k.COLUMN_NAME AND
34 | OBJECTPROPERTY(OBJECT_ID(k.CONSTRAINT_SCHEMA + '.' + QUOTENAME(k.CONSTRAINT_NAME)), 'IsPrimaryKey') = 1
35 | WHERE c.TABLE_SCHEMA = @SchemaParam AND c.TABLE_NAME = @TableParam
36 | ORDER BY ISNULL(k.ORDINAL_POSITION, 30000), 1
37 | """
38 |
39 | module internal Converters =
40 |
41 | let private formatAsN (s:string) = sprintf "N'%s'" s
42 |
43 |
44 | let private toStringCustom isNullCond (value:'a) convertFn =
45 | if isNullCond then "NULL" else value |> convertFn
46 |
47 | let private toStringMap isNullCond (value:'a) mapFn =
48 | toStringCustom isNullCond value ((fun v -> Convert.ToString(v, CultureInfo.InvariantCulture)) >> mapFn)
49 |
50 | let private toString isNullCond (value:'a) = toStringMap isNullCond value id
51 |
52 | let private genericReader (colType:string) (r:DbDataReader) (i:int) =
53 | match r.GetProviderSpecificValue(i) with
54 | | null
55 | | :? DBNull -> "NULL"
56 | | :? INullable as n when n.IsNull -> "NULL"
57 | | :? SqlDouble as v -> toString v.IsNull v.Value
58 | | :? SqlDecimal as v -> toString v.IsNull (v.ToString())
59 | | :? SqlSingle as v -> toString v.IsNull v.Value
60 | | :? SqlInt64 as v -> toString v.IsNull v.Value
61 | | :? SqlInt32 as v -> toString v.IsNull v.Value
62 | | :? SqlInt16 as v -> toString v.IsNull v.Value
63 | | :? SqlByte as v -> toString v.IsNull v.Value
64 | | :? SqlMoney as v -> toString v.IsNull v.Value
65 | | :? SqlBoolean as v -> toStringCustom v.IsNull v.Value (fun x -> if x then "1" else "0")
66 | | :? SqlString as v -> toStringMap v.IsNull v.Value formatAsN
67 | | :? SqlChars as v -> toStringMap v.IsNull v.Value formatAsN
68 | | :? SqlBinary as v -> toStringCustom v.IsNull v.Value (fun x -> "0x" + BitConverter.ToString(x).Replace("-",""))
69 | | :? SqlXml as v -> toStringMap v.IsNull v.Value formatAsN
70 | | :? SqlGuid as v -> toStringMap v.IsNull v.Value formatAsN
71 | | :? SqlDateTime as v when colType = "datetime" ->
72 | toStringCustom v.IsNull v.Value ((fun x -> x.ToString("yyyy-MM-ddTHH:mm:ss.fff", CultureInfo.InvariantCulture)) >> formatAsN)
73 | | :? SqlDateTime as v when colType = "smalldatetime" ->
74 | toStringCustom v.IsNull v.Value ((fun x -> x.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture)) >> formatAsN)
75 | | :? DateTime as v when colType = "datetime2" ->
76 | toStringCustom false v ((fun x -> x.ToString("yyyy-MM-ddTHH:mm:ss.fffffff", CultureInfo.InvariantCulture)) >> formatAsN)
77 | | :? DateTime as v when colType = "date" ->
78 | toStringCustom false v ((fun x -> x.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)) >> formatAsN)
79 | | :? DateTimeOffset as v ->
80 | toStringCustom false v ((fun x -> x.ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz", CultureInfo.InvariantCulture)) >> formatAsN)
81 | | :? TimeSpan as v ->
82 | toStringCustom false v ((fun x -> x.ToString("c", CultureInfo.InvariantCulture)) >> formatAsN)
83 | | v -> toStringMap false v formatAsN
84 |
85 | let tryGetConverter (t:string) =
86 | match t with
87 | | "timestamp" -> None
88 | | _ -> Some (genericReader t)
89 |
90 | let private safeName (n:string) = sprintf "[%s]" n
91 |
92 | type internal ColumnDefinition = {
93 | Name : string
94 | DataType : string
95 | IsSorted : bool
96 | Converter : DbDataReader -> int -> string
97 | }
98 |
99 | []
100 | module internal ColumnDefinition =
101 | let toSelectSql (c:ColumnDefinition) =
102 | let name = safeName c.Name
103 | match c.DataType with
104 | | "geometry" | "geography" | "hierarchyid" -> sprintf "%s.ToString() as %s" name name
105 | | _ -> name
106 |
107 | let safeName (c:ColumnDefinition) = c.Name |> safeName
108 |
109 | type internal TableDefinition = {
110 | Schema : string
111 | Name : string
112 | Columns : ColumnDefinition list
113 | }
114 |
115 | []
116 | module internal TableDefinition =
117 | let safeFullName (td:TableDefinition) = (safeName td.Schema) + "." + (safeName td.Name)
118 |
119 | let private getColumns (conn:IDbConnection) schema name =
120 | task {
121 | let! results = conn.QueryAsync(SqlCommands.getColumns, {| SchemaParam = schema; TableParam = name |})
122 | return
123 | results
124 | |> Seq.choose (fun x ->
125 | x.DATA_TYPE
126 | |> Converters.tryGetConverter
127 | |> Option.map (fun conv -> { Name = x.COLUMN_NAME; DataType = x.DATA_TYPE; IsSorted = x.ORDINAL_POSITION = 1; Converter = conv })
128 | )
129 | |> Seq.toList
130 | }
131 |
132 | let private getTables (conn:IDbConnection) =
133 | task {
134 | let! results = conn.QueryAsync(SqlCommands.getTables)
135 | let mutable tables = ResizeArray<_>()
136 | for tbl in results do
137 | let schema = tbl.TABLE_SCHEMA
138 | let name = tbl.TABLE_NAME
139 | let! cols = getColumns conn schema name
140 | tables.Add({ Name = name; Schema = schema; Columns = cols })
141 | return tables |> Seq.toList
142 | }
143 |
144 | type internal Writer = {
145 | Go : unit -> Task
146 | EmptyLine : unit -> Task
147 | Line : string -> Task
148 | Append : string -> Task
149 | }
150 |
151 | module internal Writer =
152 | let create (writer:TextWriter) (dump:SQLDumper) =
153 | {
154 | Go = fun _ -> if dump.UseGoStatements then writer.WriteLineAsync("GO") else Task.CompletedTask
155 | EmptyLine = writer.WriteLineAsync
156 | Line = writer.WriteLineAsync
157 | Append = writer.WriteAsync
158 | }
159 |
160 | let private dumpTable (conn:IDbConnection) (dump:SQLDumper) (w:Writer) (table:TableDefinition) =
161 | task {
162 | let tableName = table |> TableDefinition.safeFullName
163 | let colsSelect = table.Columns |> List.map ColumnDefinition.toSelectSql |> String.concat ", "
164 | let colsInsert = table.Columns |> List.map ColumnDefinition.safeName |> String.concat ", "
165 | let cmdText = StringBuilder()
166 | cmdText.Append (sprintf "SELECT %s FROM %s" colsSelect tableName) |> ignore
167 | if table.Columns |> List.exists (fun x -> x.IsSorted) then
168 | table.Columns
169 | |> List.filter (fun x -> x.IsSorted)
170 | |> List.map (fun x -> safeName x.Name)
171 | |> String.concat ", "
172 | |> (fun cols ->
173 | cmdText.Append (sprintf " ORDER BY %s" cols)
174 | )
175 | |> ignore
176 |
177 | do! w.EmptyLine()
178 | do! w.Line (sprintf "-- Table %s --" tableName)
179 |
180 | let identityFlag (v:string) =
181 | w.Line (sprintf "IF OBJECTPROPERTY(OBJECT_ID('%s'), 'TableHasIdentity') = 1 SET IDENTITY_INSERT %s %s;" tableName tableName v)
182 |
183 | let! reader = conn.ExecuteReaderAsync(cmdText.ToString())
184 | let mutable rows = 0
185 | while reader.Read() do
186 | if rows%dump.RowsInStatement = 0 then
187 | if rows = 0 then do! identityFlag "ON" else do! w.Line ";"
188 | if dump.StatementsInTransaction = 0 && rows > 0 then do! w.Go()
189 | else if rows / dump.RowsInStatement % dump.StatementsInTransaction = 0 then
190 | if rows > 0 then
191 | do! w.Line "COMMIT;"
192 | do! w.Go()
193 | do! w.EmptyLine()
194 | do! w.Line "BEGIN TRANSACTION;"
195 | do! w.Line(sprintf "INSERT INTO %s (%s) VALUES" tableName colsInsert)
196 | else
197 | do! w.Line ", "
198 |
199 | do!
200 | table.Columns
201 | |> List.mapi (fun i x -> x.Converter (reader :?> DbDataReader) i)
202 | |> String.concat ", "
203 | |> sprintf "(%s)"
204 | |> w.Append
205 | rows <- rows + 1
206 | reader.Close()
207 | if rows > 0 then
208 | do! w.Line ";"
209 | if dump.StatementsInTransaction > 0 then do! w.Line "COMMIT;"
210 | do! identityFlag "OFF"
211 | do! w.Go()
212 | }
213 |
214 | /// Dump MSSQL database into TextWriter instance
215 | let dumpToWriter (writer:TextWriter) (dump:SQLDumper) =
216 | let w = Writer.create writer dump
217 | task {
218 | use conn = new SqlConnection(dump.ConnectionString)
219 | let! tables = getTables conn
220 | // begin
221 | do! w.Line("EXEC sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'")
222 |
223 | // process tables
224 | for table in (tables |> List.filter (fun x -> not <| dump.IgnoredTables.Contains(x.Name))) do
225 | do! table |> dumpTable conn dump w
226 |
227 | // end
228 | do! w.EmptyLine()
229 | do! w.Line("EXEC sp_MSforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'")
230 | do! w.Go()
231 | }
232 |
233 | /// Dump MSSQL database into file
234 | let dumpToFile (filePath:string) (dump:SQLDumper) =
235 | task {
236 | use file = File.CreateText(filePath)
237 | do! dump |> dumpToWriter file
238 | do! file.FlushAsync()
239 | }
--------------------------------------------------------------------------------
/src/SQLDumper/SQLDumper.fs:
--------------------------------------------------------------------------------
1 | namespace SQLDumper
2 |
3 | type SQLDumper = {
4 | UseGoStatements : bool
5 | StatementsInTransaction : int
6 | RowsInStatement : int
7 | IgnoredTables : string list
8 | ConnectionString : string
9 | }
10 |
11 | []
12 | module SQLDumper =
13 | /// Setup SQL dump for connection string
14 | let init connString = {
15 | UseGoStatements = true
16 | StatementsInTransaction = 1000
17 | RowsInStatement = 100
18 | IgnoredTables = []
19 | ConnectionString = connString
20 | }
21 |
22 | /// Sets connection string
23 | let connectionString str s = { s with ConnectionString = str }
24 | /// Use GO statements?
25 | let useGoStatements flag s = { s with UseGoStatements = flag }
26 | /// Number of statements per transaction
27 | let statementsInTransaction num s = { s with StatementsInTransaction = num }
28 | /// Number of rows per statements
29 | let rowsInStatement num s = { s with RowsInStatement = num }
30 | /// List of tables to ignore during dump
31 | let ignoreTables tables s = { s with IgnoredTables = tables }
32 |
--------------------------------------------------------------------------------
/src/SQLDumper/SQLDumper.fsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | SQLDumper
6 | Dump your MSSQL database into file or stream
7 | https://github.com/Dzoukr/SQLDumper
8 | https://github.com/Dzoukr/SQLDumper/blob/master/LICENSE
9 | fsharp;database;mssql;dump;tools
10 | Roman Provazník
11 | 1.0.1
12 | Fixing package description
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/SQLDumper/paket.references:
--------------------------------------------------------------------------------
1 | FSharp.Core
2 | Dapper
3 | TaskBuilder.fs
4 | Microsoft.Data.SqlClient
--------------------------------------------------------------------------------