diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index f480464dc..f5fe4c7c9 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,25 +3,25 @@
"isRoot": true,
"tools": {
"dotnet-reportgenerator-globaltool": {
- "version": "4.6.1",
+ "version": "4.7.1",
"commands": [
"reportgenerator"
]
},
"fake-cli": {
- "version": "5.20.1",
+ "version": "5.20.3",
"commands": [
"fake"
]
},
"xmldocmd": {
- "version": "2.1.0",
+ "version": "2.3.0",
"commands": [
"xmldocmd"
]
},
"altcode.gendarme-tool": {
- "version": "2020.6.12.11211-pre-release",
+ "version": "2020.7.21.12091-pre-release",
"commands": [
"gendarme"
]
diff --git a/.gitignore b/.gitignore
index 2bdab9cb2..c7e51a611 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,9 @@ Demo/MultiTest/**/coverage.xml
TestResults/
AltCover/Abstract.fs
Tests.Visualizer/Reports/
+.fake
+.ionide
+AltCover.Engine/Abstract.fsi
+Sample22/Sample22.fsproj
+Sample22/coverage.xml
+buildsample*.fsx.lock
diff --git a/.travis.yml b/.travis.yml
index f2cf341ca..768cf78ab 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language: csharp
mono: latest
dist: xenial
-dotnet: 3.1.301
+dotnet: 3.1.403
addons:
apt:
sources:
diff --git a/AltCover.Api.Tests/altcover.api.tests.core.fsproj b/AltCover.Api.Tests/AltCover.Api.Tests.fsproj
similarity index 77%
rename from AltCover.Api.Tests/altcover.api.tests.core.fsproj
rename to AltCover.Api.Tests/AltCover.Api.Tests.fsproj
index 5e736cf76..639932e1b 100644
--- a/AltCover.Api.Tests/altcover.api.tests.core.fsproj
+++ b/AltCover.Api.Tests/AltCover.Api.Tests.fsproj
@@ -1,15 +1,15 @@
- netcoreapp3.0;net47
+ netcoreapp3.0;net472
false
AltCover.Api.Tests
$(AssetTargetFallback);netcoreapp1.0;
false
- Exe
- Library
+ Exe
+ Library
- $(AssemblySearchPaths);{GAC}
+ $(AssemblySearchPaths);{GAC}
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
--keyfile:$(ProjectDir)..\Build\Infrastructure.snk
@@ -37,45 +37,45 @@
+
-
-
+
+
-
-
+
+
..\ThirdParty\Unquote.dll
all
runtime; build; native; contentfiles; analyzers
-
+
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/AltCover.Api.Tests/FSApiTests.fs b/AltCover.Api.Tests/FSApiTests.fs
index d2b2e53cd..b930b32c7 100644
--- a/AltCover.Api.Tests/FSApiTests.fs
+++ b/AltCover.Api.Tests/FSApiTests.fs
@@ -10,20 +10,8 @@ open System.Xml.Schema
open AltCover
open Microsoft.FSharp.Reflection
-open Swensen.Unquote
-
-#if NETCOREAPP3_0
-[]
-type TestAttribute() = class
- inherit Attribute()
-end
-#else
-type TestAttribute = NUnit.Framework.TestAttribute
-#endif
module FSApiTests =
- let SolutionDir() =
- SolutionRoot.location
[]
let FormatFromCoverletMeetsSpec() =
@@ -127,7 +115,7 @@ module FSApiTests =
[]
let OpenCoverToLcov() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.xml")
let doc = XDocument.Load(stream)
use stream2 = new MemoryStream()
CoverageFormats.ConvertToLcov doc stream2
@@ -136,7 +124,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("\r", String.Empty)
use stream3 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.lcov")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.lcov")
use rdr2 = new StreamReader(stream3)
let expected = rdr2.ReadToEnd().Replace("\r", String.Empty)
@@ -145,7 +133,7 @@ module FSApiTests =
[]
let OpenCoverToBarChart() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.xml")
let doc = XDocument.Load stream
use mstream = new MemoryStream()
let rewrite = Xhtml.ConvertToBarChart doc
@@ -155,7 +143,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("\r", String.Empty)
use stream2 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.html")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.html")
use rdr2 = new StreamReader(stream2)
let expected = rdr2.ReadToEnd().Replace("⑂", "\u2442").Replace("\r", String.Empty)
@@ -165,7 +153,7 @@ module FSApiTests =
[]
let OpenCoverToNCover() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.xml")
let doc = XDocument.Load stream
use mstream = new MemoryStream()
let rewrite = CoverageFormats.ConvertToNCover doc
@@ -175,7 +163,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("\r", String.Empty)
use stream2 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledToNCover.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledToNCover.xml")
use rdr2 = new StreamReader(stream2)
let time = (rewrite.Descendants(XName.Get "coverage")
|> Seq.head).Attribute(XName.Get "startTime").Value
@@ -196,7 +184,7 @@ module FSApiTests =
[]
let FormatsConvertToXmlDocument() =
use stream =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.html")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.html")
use rdr = new StreamReader(stream)
let expected = rdr.ReadToEnd().Replace("html >", "html>").Replace("\r", String.Empty).Replace("⑂", "\u2442")
rdr.BaseStream.Position <- 0L
@@ -213,7 +201,7 @@ module FSApiTests =
[]
let FormatsConvertToXDocument() =
use stream =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.HandRolledMonoCoverage.html")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.HandRolledMonoCoverage.html")
use rdr = new StreamReader(stream)
let expected = rdr.ReadToEnd().Replace("\r", String.Empty).Replace("⑂", "\u2442")
rdr.BaseStream.Position <- 0L
@@ -242,7 +230,7 @@ module FSApiTests =
[]
let NCoverToCobertura() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.Sample1WithNCover.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.Sample1WithNCover.xml")
let doc = XDocument.Load(stream)
doc.Descendants()
|> Seq.map (fun n -> n.Attribute(XName.Get "excluded"))
@@ -257,7 +245,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("\r", String.Empty)
use stream3 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.Sample1WithNCover.cob.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.Sample1WithNCover.cob.xml")
use rdr2 = new StreamReader(stream3)
let coverage = cob.Descendants(XName.Get "coverage") |> Seq.head
@@ -272,7 +260,7 @@ module FSApiTests =
[]
let NCoverToBarChart() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.GenuineNCover158.Xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.GenuineNCover158.Xml")
let doc = XDocument.Load stream
use mstream = new MemoryStream()
let rewrite = Xhtml.ConvertToBarChart doc
@@ -282,7 +270,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("html >", "html>").Replace("\r", String.Empty)
use stream2 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.GenuineNCover158Chart.html")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.GenuineNCover158Chart.html")
use rdr2 = new StreamReader(stream2)
let expected = rdr2.ReadToEnd().Replace("\r", String.Empty)
@@ -292,7 +280,7 @@ module FSApiTests =
[]
let OpenCoverBranchCompression() =
use stream=
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core.Compressible.xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests.Compressible.xml")
let doc = XDocument.Load stream
[("CompressInterior", true, false)
@@ -307,7 +295,7 @@ module FSApiTests =
let result = rdr.ReadToEnd().Replace("\r", String.Empty)
use stream2 =
- Assembly.GetExecutingAssembly().GetManifestResourceStream("altcover.api.tests.core."+ test + ".xml")
+ Assembly.GetExecutingAssembly().GetManifestResourceStream("AltCover.Api.Tests."+ test + ".xml")
use rdr2 = new StreamReader(stream2)
let expected = rdr2.ReadToEnd().Replace("\r", String.Empty)
@@ -430,10 +418,13 @@ module FSApiTests =
test <@ DotNet.ToTestArguments prep coll combined =
"/p:AltCover=\"true\" /p:AltCoverReportFormat=\"OpenCover\" /p:AltCoverShowStatic=\"-\" /p:AltCoverShowSummary=\"R\" /p:AltCoverForce=\"true\" /p:AltCoverFailFast=\"true\"" @>
+#if SOURCEMAP
+ let SolutionDir() =
+ SolutionRoot.location
+
let internal mangleFile (f:String) =
f.Replace(@"C:\Users\steve\Documents\GitHub\altcover", SolutionRoot.location).Replace('\\', Path.DirectorySeparatorChar)
-#if SOURCEMAP
[]
let NCoverFindsFiles() =
use stream =
diff --git a/AltCover.Api.Tests/Program.fs b/AltCover.Api.Tests/Program.fs
index d2c16df0b..2685bb00a 100644
--- a/AltCover.Api.Tests/Program.fs
+++ b/AltCover.Api.Tests/Program.fs
@@ -1,17 +1,13 @@
-namespace AltCover.Expecto.Tests
+namespace Tests
#if NETCOREAPP3_0
open Expecto
-open Mono.Cecil
-open Mono.Cecil.Cil
-open Mono.Cecil.Rocks
-open Swensen.Unquote
-
-module TestMain =
- let sync = System.Object()
+module ExpectoMain =
let regular = [
+ Tests.TestCommonTests.ExerciseItAll, "TestCommonTests.ExerciseItAll"
+ Tests.TestCommonTests.SelfTest, "TestCommonTests.SelfTest"
Tests.FSApiTests.FormatFromCoverletMeetsSpec, "FSApiTests.FormatFromCoverlet"
Tests.FSApiTests.PostprocessShouldRestoreBranchOnlyOpenCoverState, "FSApiTests.PostprocessShouldRestoreBranchOnlyOpenCoverState"
Tests.FSApiTests.OpenCoverToLcov, "FSApiTests.OpenCoverToLcov"
@@ -36,47 +32,16 @@ module TestMain =
[]
let consistencyCheck() =
- let here = System.Reflection.Assembly.GetExecutingAssembly().Location
- let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(here)
-
- let testMethods = def.MainModule.GetTypes()
- |> Seq.collect (fun t -> t.Methods)
- |> Seq.filter (fun m -> m.CustomAttributes |> isNull |> not)
- |> Seq.filter (fun m -> m.CustomAttributes |> Seq.exists (fun a -> a.AttributeType.Name = "TestAttribute"))
- |> Seq.map (fun m -> m.DeclaringType.FullName + "::" + m.Name)
-
- let lookup = def.MainModule.GetAllTypes()
- |> Seq.filter (fun t -> t.Methods |> Seq.exists(fun m -> m.Name = "Invoke"))
- |> Seq.map (fun t -> (t.FullName.Replace("/","+"), t.Methods |> Seq.find(fun m -> m.Name = "Invoke")))
- |> Map.ofSeq
-
- let calls = regular
- |> List.map (fst
- >> (fun f -> f.GetType().FullName.Replace("/","+"))
- >> (fun f -> Map.find f lookup)
- >> (fun f -> f.Body.Instructions |> Seq.find (fun i -> i.OpCode = OpCodes.Call))
- >> (fun i -> let m = (i.Operand :?> MethodDefinition)
- m.DeclaringType.FullName + "::" + m.Name))
- |> Set.ofList
-
- let omitted = testMethods
- |> Seq.filter (fun t -> (Set.contains t calls) |> not)
- |> Seq.toList
-
- // cover all but the special cases
- test <@ omitted = [] @>
+ ExpectoTestCommon.consistencyCheck regular []
[]
let tests =
- testList "AltCover.Api.Tests"
- <| ((((consistencyCheck, "ConsistencyCheck") :: regular)
- |> List.map (fun (f,name) -> testCase name f))
- @ specials)
+ ExpectoTestCommon.makeTests "AltCoverApiTests" consistencyCheck regular specials ignore
-module Program =
- []
- let main argv =
+module UnitTestStub =
+ []
+ let unitTestStub argv =
let writeResults = TestResults.writeNUnitSummary ("AltCover.Api.TestResults.xml", "AltCover.Api.Tests")
let config = defaultConfig.appendSummaryHandler writeResults
- runTestsWithArgs config argv TestMain.tests
+ runTestsWithArgs config argv ExpectoMain.tests
#endif
\ No newline at end of file
diff --git a/AltCover.Avalonia.FuncUI/AltCover.Avalonia.FuncUI.fsproj b/AltCover.Avalonia.FuncUI/AltCover.Avalonia.FuncUI.fsproj
index a1caf0e38..42499f630 100644
--- a/AltCover.Avalonia.FuncUI/AltCover.Avalonia.FuncUI.fsproj
+++ b/AltCover.Avalonia.FuncUI/AltCover.Avalonia.FuncUI.fsproj
@@ -16,7 +16,7 @@
$(ProjectDir)..\_Intermediate/$(AssemblyName).FuncUI/$(Configuration)+$(Platform)/
--keyfile:$(ProjectDir)..\Build\Infrastructure.snk
-
+
TRACE;DEBUG;CODE_ANALYSIS;$(GlobalDefineConstants)
true
@@ -28,44 +28,39 @@
TRACE;$(GlobalDefineConstants)
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
\ No newline at end of file
diff --git a/AltCover.Avalonia/altcover.avalonia.fsproj b/AltCover.Avalonia/AltCover.Avalonia.fsproj
similarity index 91%
rename from AltCover.Avalonia/altcover.avalonia.fsproj
rename to AltCover.Avalonia/AltCover.Avalonia.fsproj
index 4d85154e6..17e46fb10 100644
--- a/AltCover.Avalonia/altcover.avalonia.fsproj
+++ b/AltCover.Avalonia/AltCover.Avalonia.fsproj
@@ -51,8 +51,8 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers
@@ -62,10 +62,11 @@
+
-
+
\ No newline at end of file
diff --git a/AltCover.Avalonia/MainWindow.fs b/AltCover.Avalonia/MainWindow.fs
index 12b0d1f66..a2f88cbc2 100644
--- a/AltCover.Avalonia/MainWindow.fs
+++ b/AltCover.Avalonia/MainWindow.fs
@@ -9,6 +9,7 @@ open System.Xml.XPath
open GuiCommon
+open AltCover.FontSupport
open Avalonia.Controls
open Avalonia.Markup.Xaml
open Avalonia.Media
@@ -116,10 +117,22 @@ type MainWindow() as this =
this.FindControl
TRACE;$(GlobalDefineConstants)
- --keyfile:$(SolutionDir)Build\Infrastructure.snk --staticlink:Manatee.Json
+
@@ -71,58 +70,48 @@
-
Recorder.snk
-
-
-
-
+
all
runtime; build; native; contentfiles; analyzers
-
-
- ..\ThirdParty\Mono.Options.dll
-
-
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
-
-
-
- $(SolutionDir)_Binaries\AltCover.Recorder\$(Configuration)+$(Platform)\netstandard2.0\AltCover.Recorder.dll
+
+ ..\ThirdParty\Mono.Options.dll
-
+
+
+
$(SolutionDir)_Binaries\AltCover.Recorder\$(Configuration)+$(Platform)\net20\AltCover.Recorder.dll
-
+
..\ThirdParty\BlackFox.CommandLine.dll
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
+
@@ -135,9 +124,4 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/AltCover/AltCover.fs b/AltCover.Engine/AltCover.fs
similarity index 100%
rename from AltCover/AltCover.fs
rename to AltCover.Engine/AltCover.fs
diff --git a/AltCover/AltCover.fsi b/AltCover.Engine/AltCover.fsi
similarity index 100%
rename from AltCover/AltCover.fsi
rename to AltCover.Engine/AltCover.fsi
diff --git a/AltCover/Args.fs b/AltCover.Engine/Args.fs
similarity index 100%
rename from AltCover/Args.fs
rename to AltCover.Engine/Args.fs
diff --git a/AltCover/AssemblyInfo.fs b/AltCover.Engine/AssemblyInfo.fs
similarity index 56%
rename from AltCover/AssemblyInfo.fs
rename to AltCover.Engine/AssemblyInfo.fs
index cb3677ba9..16215a5ec 100644
--- a/AltCover/AssemblyInfo.fs
+++ b/AltCover.Engine/AssemblyInfo.fs
@@ -1,19 +1,17 @@
-namespace AltCover
-
-open System
-open System.Runtime.CompilerServices
-open System.Runtime.InteropServices
-
-[]
-[]
-#if NETCOREAPP2_0
-[]
-#endif
-#if DEBUG
-// Self-test signing key
-[]
-#endif
-[]
-[]
-[]
+namespace AltCover
+
+open System
+open System.Runtime.CompilerServices
+open System.Runtime.InteropServices
+
+[]
+[]
+#if DEBUG
+// Self-test signing key
+[]
+[]
+#endif
+[]
+[]
+[]
()
\ No newline at end of file
diff --git a/AltCover/Augment.fs b/AltCover.Engine/Augment.fs
similarity index 92%
rename from AltCover/Augment.fs
rename to AltCover.Engine/Augment.fs
index b83e170dc..91d51c671 100644
--- a/AltCover/Augment.fs
+++ b/AltCover.Engine/Augment.fs
@@ -12,13 +12,19 @@ module internal Augment =
module Augment =
#endif
+#if !ValidateGendarmeEmulation
+ []
+ let internal charIndexOf (name:string) (token:char) =
+ name.IndexOf(token)
+#endif
+
type System.Object with
member self.IsNotNull
with get() =
self |> isNull |> not
-#if !GUI
-#if !WEAKNAME
+#if !(GUI || ValidateGendarmeEmulation)
type System.String with
member self.X
with get() =
@@ -28,7 +34,6 @@ module Augment =
System.Double.TryParse(self,
System.Globalization.NumberStyles.Number,
System.Globalization.CultureInfo.InvariantCulture)
-#endif
#endif
type internal Either<'a, 'b> = Choice<'b, 'a>
@@ -47,29 +52,23 @@ module Augment =
Justification = "Idiomatic F# style")>]
let Left x : Either<'a, 'b> = Choice2Of2 x
-#if !GUI
let internal (|Right|Left|) =
-#else
- let (|Right|Left|) =
-#endif
function
| Choice1Of2 x -> Right x
| Choice2Of2 x -> Left x
-#if !WEAKNAME
-#if !GUI
+#if !(GUI || ValidateGendarmeEmulation)
let internal doWithStream (create : unit -> 'a) (action : 'a -> unit) =
use stream = create()
action stream
#endif
-#endif
#if !GUI
type System.Boolean with
member self.ToInt32
with get() =
if self then 1 else 0
-#if !WEAKNAME
+#if !ValidateGendarmeEmulation
type System.Int32 with
member self.Increment (b : bool) =
self + b.ToInt32
diff --git a/AltCover/Cobertura.fs b/AltCover.Engine/Cobertura.fs
similarity index 100%
rename from AltCover/Cobertura.fs
rename to AltCover.Engine/Cobertura.fs
diff --git a/AltCover/Command.fs b/AltCover.Engine/Command.fs
similarity index 100%
rename from AltCover/Command.fs
rename to AltCover.Engine/Command.fs
diff --git a/AltCover/Command.fsi b/AltCover.Engine/Command.fsi
similarity index 100%
rename from AltCover/Command.fsi
rename to AltCover.Engine/Command.fsi
diff --git a/AltCover/CommandLine.fs b/AltCover.Engine/CommandLine.fs
similarity index 96%
rename from AltCover/CommandLine.fs
rename to AltCover.Engine/CommandLine.fs
index fe2c368f0..71b81a747 100644
--- a/AltCover/CommandLine.fs
+++ b/AltCover.Engine/CommandLine.fs
@@ -17,9 +17,7 @@ open BlackFox.CommandLine
open Mono.Options
open System.Diagnostics.CodeAnalysis
-#if NETCOREAPP2_0
-#else
-[]
+[]
module internal Process =
type System.Diagnostics.Process with
// Work around observed unreliability of WaitForExit()
@@ -37,15 +35,14 @@ module internal Process =
| :? SystemException
| :? InvalidOperationException
| :? System.ComponentModel.Win32Exception -> ()
- if System.Environment.GetEnvironmentVariable("OS") = "Windows_NT" && "Mono.Runtime"
- |> Type.GetType
- |> isNull then // only rely on .net Framework on Windows
+ if "Mono.Runtime"
+ |> Type.GetType
+ |> isNull then
self.WaitForExit()
else
loop()
open Process
-#endif
module internal Zip =
let internal save (document : XDocument) (report : string) (zip : bool) =
@@ -194,11 +191,7 @@ module internal CommandLine =
proc.Start() |> ignore
proc.BeginErrorReadLine()
proc.BeginOutputReadLine()
- #if NETCOREAPP2_0
- proc.WaitForExit()
- #else
proc.WaitForExitCustom()
- #endif
proc.ExitCode * (!dropReturnCode
|> not).ToInt32
@@ -265,6 +258,8 @@ module internal CommandLine =
|> SecurityException
|> raise
+ []
let internal stripNulls (x : String) =
let descape (s : string) = s.Replace(char 0, ';')
@@ -436,4 +431,13 @@ module internal CommandLine =
|> (Output.warnOn warn)
let internal writeErrorResourceWithFormatItems s x =
Format.Local(s, x)
- |> Output.error
\ No newline at end of file
+ |> Output.error
+
+ []
+ let internal toConsole() =
+ Output.error <- writeErr
+ Output.usage <- usageBase
+ Output.echo <- writeErr
+ Output.info <- writeOut
\ No newline at end of file
diff --git a/AltCover/Exemption.fs b/AltCover.Engine/Exemption.fs
similarity index 86%
rename from AltCover/Exemption.fs
rename to AltCover.Engine/Exemption.fs
index d903ab4a2..9519831db 100644
--- a/AltCover/Exemption.fs
+++ b/AltCover.Engine/Exemption.fs
@@ -3,8 +3,6 @@ open System.Diagnostics.CodeAnalysis
[]
-[]
#if !GUI
type internal Exemption =
#else
diff --git a/AltCover/Filter.fs b/AltCover.Engine/Filter.fs
similarity index 92%
rename from AltCover/Filter.fs
rename to AltCover.Engine/Filter.fs
index e90a4aebe..e2cd121ec 100644
--- a/AltCover/Filter.fs
+++ b/AltCover.Engine/Filter.fs
@@ -224,4 +224,14 @@ module internal Filter =
&& m.CustomAttributes
|> Seq.exists
(fun x ->
- x.AttributeType.FullName = typeof.FullName)
\ No newline at end of file
+ x.AttributeType.FullName = typeof.FullName)
+
+[]
+[]
+()
\ No newline at end of file
diff --git a/AltCover/Gendarme.fs b/AltCover.Engine/Gendarme.fs
similarity index 100%
rename from AltCover/Gendarme.fs
rename to AltCover.Engine/Gendarme.fs
diff --git a/AltCover/Instrument.fs b/AltCover.Engine/Instrument.fs
similarity index 85%
rename from AltCover/Instrument.fs
rename to AltCover.Engine/Instrument.fs
index d882dcd1d..ce6d691c7 100644
--- a/AltCover/Instrument.fs
+++ b/AltCover.Engine/Instrument.fs
@@ -16,6 +16,12 @@ open Mono.Cecil
open Mono.Cecil.Cil
open Mono.Cecil.Rocks
+[]
+()
+
[]
type internal RecorderRefs =
{ Visit : MethodReference
@@ -26,9 +32,7 @@ type internal RecorderRefs =
Push = null
Pop = null }
-// //
-// // State object passed from visit to visit
-// //
+// State object passed from visit to visit
[]
type internal InstrumentContext =
{ InstrumentedAssemblies : string list
@@ -47,9 +51,7 @@ type internal InstrumentContext =
MethodBody = null
MethodWorker = null } // to save fetching repeatedly
-// //
-// // Module to handle instrumentation visitor
-// //
+// Module to handle instrumentation visitor
module internal Instrument =
let private resources =
ResourceManager("AltCover.JSONFragments", Assembly.GetExecutingAssembly())
@@ -60,12 +62,9 @@ module internal Instrument =
Justification = "partitioned into closures")>]
module internal I =
-#if NETCOREAPP2_0
-#else
- let monoRuntime =
- ("Mono.Runtime"
- |> Type.GetType).IsNotNull
-#endif
+ //let monoRuntime =
+ // ("Mono.Runtime"
+ // |> Type.GetType).IsNotNull
let dependencies =
(resources.GetString "frameworkDependencies").Replace("version", version)
@@ -76,11 +75,9 @@ module internal Instrument =
(resources.GetString "frameworkLibraries")
.Replace("AltCover.Recorder.g/version", "AltCover.Recorder.g/" + version)
- // //
- // // Locate the method that must be called to register a code point for coverage visit.
- // //
- // // The assembly containing the recorder method
- // // A representation of the method to call to signal a coverage visit.
+ // Locate the method that must be called to register a code point for coverage visit.
+ // param name="assembly">The assembly containing the recorder method
+ // returns>A representation of the method to call to signal a coverage visit.
let internal recordingMethod(recordingAssembly : AssemblyDefinition) =
recordingAssembly.MainModule.GetAllTypes()
|> Seq.filter (fun t -> t.FullName = "AltCover.Recorder.Instance")
@@ -92,11 +89,9 @@ module internal Instrument =
|> Seq.toList
|> List.rev
- // //
- // // Applies a new key to an assembly name
- // //
- // // The name to update
- // // The possibly empty key to use
+ // Applies a new key to an assembly name
+ // param name="assemblyName">The name to update
+ // param name="key">The possibly empty key to use
let internal updateStrongNaming (assembly : AssemblyDefinition)
(key : StrongNameKeyData option) =
let assemblyName = assembly.Name
@@ -111,11 +106,9 @@ module internal Instrument =
assemblyName.HasPublicKey <- true
assemblyName.PublicKey <- key'.PublicKey |> Seq.toArray // sets token implicitly
- // //
- // // Locate the key, if any, which was used to name this assembly.
- // //
- // // The name of the assembly
- // // A key, if we have a match.
+ // Locate the key, if any, which was used to name this assembly.
+ // param name="name">The name of the assembly
+ // returns>A key, if we have a match.
[]
@@ -128,11 +121,9 @@ module internal Instrument =
| (false, _) -> None
| (_, record) -> Some record.Pair
- // //
- // // Locate the key, if any, which was used to name this assembly.
- // //
- // // The name of the assembly
- // // A key, if we have a match.
+ // Locate the key, if any, which was used to name this assembly.
+ // param name="name">The name of the assembly
+ // returns>A key, if we have a match.
let internal knownToken(name : AssemblyNameReference) =
let pktoken = name.PublicKeyToken
if pktoken.Length <> 8 then
@@ -157,20 +148,18 @@ module internal Instrument =
(assembly :> IDisposable).Dispose()
reraise()
- // //
- // // Create the new assembly that will record visits, based on the prototype.
- // //
- // // A representation of the assembly used to record all coverage visits.
+ // Create the new assembly that will record visits, based on the prototype.
+ // returns>A representation of the assembly used to record all coverage visits.
[]
let internal prepareAssembly(location : string) =
let definition = AssemblyDefinition.ReadAssembly(location)
guard definition (fun () -> // set the timer interval in ticks
- #if NETCOREAPP2_0
- #else
- if monoRuntime |> not then ProgramDatabase.readSymbols definition
- #endif
+
+ //if monoRuntime |> not then
+ ProgramDatabase.readSymbols definition
+
definition.Name.Name <- (extractName definition) + ".g"
let pair = CoverageParameters.recorderStrongNameKey
@@ -220,18 +209,6 @@ module internal Instrument =
worker.InsertBefore(head, worker.Create(OpCodes.Ret))
initialBody |> Seq.iter worker.Remove))
- #if NETCOREAPP2_0
- #else
- let internal createSymbolWriter pdb isWindows isMono =
- match (isWindows, isMono) with
- | (true, true) -> Mono.Cecil.Mdb.MdbWriterProvider() :> ISymbolWriterProvider
- | (true, false) ->
- match pdb with
- | ".pdb" -> Mono.Cecil.Pdb.PdbWriterProvider() :> ISymbolWriterProvider
- | _ -> Mono.Cecil.Mdb.MdbWriterProvider() :> ISymbolWriterProvider
- | _ -> null
- #endif
-
let private nugetCache =
Path.Combine
(Path.Combine
@@ -291,21 +268,17 @@ module internal Instrument =
let hook = resolver.GetType().GetMethod("add_ResolveFailure")
hook.Invoke(resolver, [| hookResolveHandler :> obj |]) |> ignore
- #if NETCOREAPP2_0
let internal findProvider pdb write =
match (pdb, write) with
| (".pdb", true) -> Mono.Cecil.Pdb.PdbWriterProvider() :> ISymbolWriterProvider
| (_, true) -> Mono.Cecil.Mdb.MdbWriterProvider() :> ISymbolWriterProvider
| _ -> null
- #endif
-
- // //
- // // Commit an instrumented assembly to disk
- // //
- // // The instrumented assembly object
- // // The full path of the output file
- // // Can raise "System.Security.Cryptography.CryptographicException: Keyset does not exist" at random
- // // when asked to strongname. This writes a new .pdb/.mdb alongside the instrumented assembly
+
+ // Commit an instrumented assembly to disk
+ // param name="assembly">The instrumented assembly object
+ // param name="path">The full path of the output file
+ // remark>Can raise "System.Security.Cryptography.CryptographicException: Keyset does not exist" at random
+ // when asked to strongname. This writes a new .pdb/.mdb alongside the instrumented assembly
let internal writeAssembly (assembly : AssemblyDefinition) (path : string) =
let pkey = Mono.Cecil.WriterParameters()
let isWindows = System.Environment.GetEnvironmentVariable("OS") = "Windows_NT"
@@ -314,7 +287,7 @@ module internal Instrument =
ProgramDatabase.getPdbWithFallback assembly
|> Option.defaultValue "x.pdb"
|> Path.GetExtension
- #if NETCOREAPP2_0
+
let separatePdb =
ProgramDatabase.getPdbFromImage assembly
|> Option.filter (fun s -> s <> (assembly.Name.Name + ".pdb"))
@@ -323,26 +296,19 @@ module internal Instrument =
// Once Cecil 0.10 beta6 is taken out of the equation, this works
// apart from renaming assemblies like AltCover.Recorder to AltCover.Recorder.g
// or for assemblies with embedded .pdb information (on *nix)
- pkey.WriteSymbols <- (isWindows || separatePdb) && assembly.MainModule.HasSymbols
+ // 8-AUG-2020
+ //Non-windows embedded symbols => do not write, else
+ //Unhandled exception. System.Runtime.InteropServices.MarshalDirectiveException: Cannot marshal 'parameter #2': Invalid managed/unmanaged type combination (Marshaling to and from COM interface pointers isn't supported).
+ // at Mono.Cecil.Pdb.SymWriter.CoCreateInstance(Guid& rclsid, Object pUnkOuter, UInt32 dwClsContext, Guid& riid, Object& ppv)
+ // at Mono.Cecil.Pdb.SymWriter..ctor() in C:/sources/cecil/symbols/pdb/Mono.Cecil.Pdb/SymWriter.cs:line 39
+ // at Mono.Cecil.Pdb.NativePdbWriterProvider.CreateWriter(ModuleDefinition module, String pdb) in C:/sources/cecil/symbols/pdb/Mono.Cecil.Pdb/PdbHelper.cs:line 81
+
+ let shouldWrite = assembly.MainModule.HasSymbols &&
+ (isWindows || separatePdb)
pkey.SymbolWriterProvider <-
- findProvider pdb pkey.WriteSymbols
- #else
- // Assembly with pdb writing fails on mono on Windows when writing with
- // System.NullReferenceException : Object reference not set to an instance of an object.
- // from deep inside Cecil
- // Pdb writing fails on mono on non-Windows with
- // System.DllNotFoundException : ole32.dll
- // at (wrapper managed-to-native) Mono.Cecil.Pdb.SymWriter:CoCreateInstance
- // Mdb writing now fails in .net framework, it throws
- // Mono.CompilerServices.SymbolWriter.MonoSymbolFileException :
- // Exception of type 'Mono.CompilerServices.SymbolWriter.MonoSymbolFileException' was thrown.
- // If there are portable .pdbs on mono, those fail to write, too with
- // Mono.CompilerServices.SymbolWriter.MonoSymbolFileException :
- // Exception of type 'Mono.CompilerServices.SymbolWriter.MonoSymbolFileException' was thrown.
- pkey.WriteSymbols <- isWindows
- pkey.SymbolWriterProvider <-
- createSymbolWriter pdb isWindows monoRuntime
- #endif
+ findProvider pdb shouldWrite
+ pkey.WriteSymbols <- pkey.SymbolWriterProvider.IsNotNull
+
knownKey assembly.Name
|> Option.iter (fun key -> pkey.StrongNameKeyBlob <- key.Blob |> List.toArray)
@@ -364,12 +330,10 @@ module internal Instrument =
Justification = "Could be refactored; no obvious IL trace in the .ctor which triggers this" );
AutoSerializable(false); Sealed>]
type internal SubstituteInstruction(oldValue : Instruction, newValue : Instruction) =
- // //
- // // Adjust the IL for exception handling
- // //
- // // The exception handler
- // // The uninstrumented location
- // // Where it has moved to
+ // Adjust the IL for exception handling
+ // param name="handler">The exception handler
+ // param name="oldBoundary">The uninstrumented location
+ // param name="newBoundary">Where it has moved to
member this.SubstituteExceptionBoundary(handler : ExceptionHandler) =
if handler.FilterStart = oldValue then handler.FilterStart <- newValue
if handler.HandlerEnd = oldValue then handler.HandlerEnd <- newValue
@@ -377,12 +341,10 @@ module internal Instrument =
if handler.TryEnd = oldValue then handler.TryEnd <- newValue
if handler.TryStart = oldValue then handler.TryStart <- newValue
- // //
- // // Adjust the IL to substitute an opcode
- // //
- // // Instruction being processed
- // // Type we are looking for
- // // Type to replace it with
+ // Adjust the IL to substitute an opcode
+ // param name="instruction">Instruction being processed
+ // param name="oldOperand">Type we are looking for
+ // param name="newOperand">Type to replace it with
member this.SubstituteInstructionOperand(instruction : Instruction) =
// Performance reasons - only 3 types of operators have operands of Instruction types
// instruction.Operand getter - is rather slow to execute it for every operator
@@ -411,12 +373,10 @@ module internal Instrument =
methodWorker.InsertAfter(instrLoadPointId, counterMethodCall)
instrLoadModuleId
- // //
- // // Determine new names for input strong-named assemblies; if we have a key and
- // // the assembly was already strong-named then give it the new key token, otherwise
- // // set that there is no strongname.
- // //
- // // The assembly object being operated upon
+ // Determine new names for input strong-named assemblies; if we have a key and
+ // the assembly was already strong-named then give it the new key token, otherwise
+ // set that there is no strongname.
+ // param name="assembly">The assembly object being operated upon
let internal updateStrongReferences (assembly : AssemblyDefinition)
(assemblies : string list) =
let effectiveKey =
@@ -454,6 +414,8 @@ module internal Instrument =
assemblyReferenceSubstitutions.[original] <- updated)
assemblyReferenceSubstitutions
+ []
let internal injectJSON (json:String) =
//let o = JObject.Parse json
let o = JsonValue.Parse json
@@ -800,12 +762,10 @@ module internal Instrument =
let recordingAssembly = prepareAssembly(recorder.Assembly.Location)
{ state with RecordingAssembly = recordingAssembly }
- // //
- // // Perform visitor operations
- // //
- // // Contextual information for the visit
- // // The node being visited
- // // Updated state
+ // Perform visitor operations
+ // param name="state">Contextual information for the visit
+ // param name="node">The node being visited
+ // returns>Updated state
let internal instrumentationVisitorCore (state : InstrumentContext) (node : Node) =
match node with
| Start _ -> visitStart state
@@ -844,10 +804,8 @@ module internal Instrument =
instrumentationVisitorWrapper instrumentationVisitorCore state node
// "Public" API
- // //
- // // Higher-order function that returns a visitor
- // //
- // // List of assembly paths to visit
- // // Stateful visitor function
+ // Higher-order function that returns a visitor
+ // param name="assemblies">List of assembly paths to visit
+ // returns>Stateful visitor function
let internal instrumentGenerator(assemblies : string list) =
Visitor.encloseState I.instrumentationVisitor (InstrumentContext.Build assemblies)
\ No newline at end of file
diff --git a/AltCover/JSONFragments.resx b/AltCover.Engine/JSONFragments.resx
similarity index 100%
rename from AltCover/JSONFragments.resx
rename to AltCover.Engine/JSONFragments.resx
diff --git a/AltCover/LCov.fs b/AltCover.Engine/LCov.fs
similarity index 91%
rename from AltCover/LCov.fs
rename to AltCover.Engine/LCov.fs
index 10d24e787..11f83f1c5 100644
--- a/AltCover/LCov.fs
+++ b/AltCover.Engine/LCov.fs
@@ -36,13 +36,33 @@ module internal LCov =
let internal multiSortByNameAndStartLine (l : (string * XElement seq) seq) =
multiSort lineOfMethod l
+ // from a real sample e.g. https://pastebin.com/588FggQg
+ (*
+TN:
+SF:...
+FNF:0
+FNH:0
+DA:5,59
+LF:1
+LH:1
+BRF:0
+BRH:0
+end_of_record
+TN:
+SF:...
+FN:4,(anonymous_0)
+...
+ *)
+ // it looks like TN: records precede every SF: record
+
+ // from e.g. https://manpages.debian.org/unstable/lcov/geninfo.1.en.html
+ // Following is a quick description of the tracefile format as used by
+ // genhtml, geninfo and lcov.
+
+ // A tracefile is made up of several human-readable lines of text, divided into sections.
+
let internal convertReport (report : XDocument) (format : ReportFormat) (stream : Stream) =
doWithStream (fun () -> new StreamWriter(stream)) (fun writer ->
- //If available, a tracefile begins with the testname which
- // is stored in the following format:
- //
- // TN:
- writer.WriteLine "TN:"
match format with
| ReportFormat.NCover ->
report.Descendants("method".X)
@@ -54,6 +74,11 @@ module internal LCov =
(m.Descendants("seqpnt".X) |> Seq.head).Attribute("document".X).Value)
|> I.multiSortByNameAndStartLine
|> Seq.iter (fun (f, methods) ->
+ //If available, a tracefile begins with the testname which
+ // is stored in the following format:
+ //
+ // TN:
+ writer.WriteLine "TN:"
// For each source file referenced in the .da file, there is a section
// containing filename and coverage data:
//
@@ -140,13 +165,18 @@ module internal LCov =
//
// end_of_record
writer.WriteLine "end_of_record")
- | _ ->
- // For each source file referenced in the .da file, there is a section
- // containing filename and coverage data:
- //
- // SF:
+ | _ -> // ReportFormat.OpenCover, ReportFormat.OpenCoverWithTracking
report.Descendants("File".X)
|> Seq.iter (fun f ->
+ //If available, a tracefile begins with the testname which
+ // is stored in the following format:
+ //
+ // TN:
+ writer.WriteLine "TN:"
+ // For each source file referenced in the .da file, there is a section
+ // containing filename and coverage data:
+ //
+ // SF:
writer.WriteLine("SF:" + f.Attribute("fullPath".X).Value)
let uid = f.Attribute("uid".X).Value
let p = f.Parent.Parent
@@ -278,4 +308,4 @@ module internal LCov =
let internal summary (report : XDocument) (format : ReportFormat) result =
doWithStream(fun () -> File.OpenWrite(!path |> Option.get))
(convertReport report format)
- (result, 0uy, String.Empty)
\ No newline at end of file
+ (result, 0uy, String.Empty)
diff --git a/AltCover/Main.fs b/AltCover.Engine/Main.fs
similarity index 95%
rename from AltCover/Main.fs
rename to AltCover.Engine/Main.fs
index 55f61713a..f79393d32 100644
--- a/AltCover/Main.fs
+++ b/AltCover.Engine/Main.fs
@@ -447,18 +447,20 @@ module internal Main =
List.unzip sorted
+ let internal isMSBuild (assembly : Assembly option) =
+ assembly
+ |> Option.map (fun a -> Path.GetFileName(a.Location).Equals("MSBuild.dll"))
+ |> Option.defaultValue false
+
+ []
let internal doInstrumentation arguments =
-#if NETCOREAPP2_0
let dotnetBuild =
Assembly.GetEntryAssembly() // is null for unit tests
|> Option.ofObj
- |> Option.map (fun a -> Path.GetFileName(a.Location).Equals("MSBuild.dll"))
- |> Option.defaultValue false
+ |> isMSBuild
-#else
- let dotnetBuild = false
-
-#endif
let check1 =
declareOptions()
|> CommandLine.parseCommandLine arguments
@@ -511,12 +513,16 @@ module internal Main =
Runner.init()
Runner.doCoverage arguments (declareOptions())
| Select "ImportModule" _ ->
- Path.Combine
- (Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName,
- "AltCover.PowerShell.dll")
- |> Path.GetFullPath
- |> sprintf "Import-Module %A"
- |> (Output.info)
+ let here = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
+ let parent = here |> Path.GetDirectoryName
+ Directory.GetDirectories(parent)
+ |> Seq.sort
+ |> Seq.collect (fun d -> Directory.GetFiles(d,
+ "AltCover.PowerShell.dll",
+ SearchOption.TopDirectoryOnly))
+ |> Seq.tryHead
+ |> Option.map (sprintf "Import-Module %A")
+ |> Option.iter Output.info
0
| Select "version" _ ->
CommandLine.writeResourceWithFormatItems "AltCover.Version"
diff --git a/AltCover/Naming.fs b/AltCover.Engine/Naming.fs
similarity index 100%
rename from AltCover/Naming.fs
rename to AltCover.Engine/Naming.fs
diff --git a/AltCover/OpenCover.fs b/AltCover.Engine/OpenCover.fs
similarity index 99%
rename from AltCover/OpenCover.fs
rename to AltCover.Engine/OpenCover.fs
index 062354f06..14c057e98 100644
--- a/AltCover/OpenCover.fs
+++ b/AltCover.Engine/OpenCover.fs
@@ -416,6 +416,12 @@ module internal OpenCover =
summary.SetAttributeValue("minCyclomaticComplexity".X, Math.Min(min, max))
summary.SetAttributeValue("numClasses".X, classes)
summary.SetAttributeValue("numMethods".X, methods))
+
+ if head.Descendants("Method".X) |> Seq.isEmpty &&
+ //head.Attributes("skippedDueTo".X) |> Seq.isEmpty &&
+ s.Excluded = Nothing
+ then head.Parent.Remove()
+
{ s with
Stack =
if s.Excluded = Nothing then tail else s.Stack
diff --git a/AltCover/PostProcess.fs b/AltCover.Engine/PostProcess.fs
similarity index 93%
rename from AltCover/PostProcess.fs
rename to AltCover.Engine/PostProcess.fs
index 67088c43a..56b37de7a 100644
--- a/AltCover/PostProcess.fs
+++ b/AltCover.Engine/PostProcess.fs
@@ -172,6 +172,24 @@ module internal PostProcess =
| null -> (false, Unchecked.defaultof<'b>)
| _ -> d.TryGetValue key
+ let internal fillTrackedVisits
+ (document : XmlAbstraction)
+ (tracks : Dictionary)
+ (attribute : string) =
+ document.RootElement.GetElementsByTagName "TrackedMethod"
+ |> Seq.iter (fun xel ->
+ let (ok, index) = xel.GetAttribute("uid") |> Int32.TryParse
+ if ok && tracks.ContainsKey index
+ then
+ let times = tracks.[index].Tracks
+ |> Seq.map (fun t -> match t with
+ | Time tx -> sprintf "%d" tx
+ | _ -> String.Empty) // never happens
+ |> Seq.filter (fun s -> s.Length > 0)
+ let attrVal = String.Join(";", times)
+ if attrVal.Length > 0
+ then xel.SetAttribute attribute attrVal)
+
let internal action
orderAttr
(counts : Dictionary>)
@@ -180,6 +198,11 @@ module internal PostProcess =
match format with
| ReportFormat.OpenCoverWithTracking
| ReportFormat.OpenCover ->
+ if counts.ContainsKey Track.Entry
+ then fillTrackedVisits document counts.[Track.Entry] "entry"
+ if counts.ContainsKey Track.Exit
+ then fillTrackedVisits document counts.[Track.Exit] "exit"
+
let scoreToString raw =
(sprintf "%.2f" raw).TrimEnd([| '0' |]).TrimEnd([| '.' |])
diff --git a/AltCover/Primitive.fs b/AltCover.Engine/Primitive.fs
similarity index 100%
rename from AltCover/Primitive.fs
rename to AltCover.Engine/Primitive.fs
diff --git a/AltCover/Primitive.fsi b/AltCover.Engine/Primitive.fsi
similarity index 100%
rename from AltCover/Primitive.fsi
rename to AltCover.Engine/Primitive.fsi
diff --git a/AltCover/ProgramDatabase.fs b/AltCover.Engine/ProgramDatabase.fs
similarity index 97%
rename from AltCover/ProgramDatabase.fs
rename to AltCover.Engine/ProgramDatabase.fs
index 2db0c9159..7228f7e2e 100644
--- a/AltCover/ProgramDatabase.fs
+++ b/AltCover.Engine/ProgramDatabase.fs
@@ -1,83 +1,83 @@
-namespace AltCover
-
-open System
-open System.Collections.Generic
-open System.IO
-
-open Mono.Cecil
-open Mono.Cecil.Cil
-open Mono.Cecil.Mdb
-open Mono.Cecil.Pdb
-
-[]
-module internal ProgramDatabase =
- // "Public" "field"
- let internal symbolFolders = List()
-
- // Implementation details
- module private I =
-
- // We no longer have to violate Cecil encapsulation to get the PDB path
- // but we do to get the embedded PDB info
- let internal getEmbed =
- (typeof.Assembly.GetTypes()
- |> Seq.filter (fun m -> m.FullName = "Mono.Cecil.Mixin")
- |> Seq.head).GetMethod("GetEmbeddedPortablePdbEntry")
-
- let internal getEmbeddedPortablePdbEntry(assembly : AssemblyDefinition) =
- getEmbed.Invoke(null, [| assembly.MainModule.GetDebugHeader() :> obj |]) :?> ImageDebugHeaderEntry
-
- let internal getSymbolsByFolder fileName folderName =
- let name = Path.Combine(folderName, fileName)
- let fallback = Path.ChangeExtension(name, ".pdb")
- if File.Exists(fallback) then
- Some fallback
- else
- let fallback2 = name + ".mdb"
- // Note -- the assembly path, not the mdb path, because GetSymbolReader wants the assembly path for Mono
- if File.Exists(fallback2) then Some name else None
-
- // "Public" API
- let internal getPdbFromImage(assembly : AssemblyDefinition) =
- Some assembly.MainModule
- |> Option.filter (fun x -> x.HasDebugHeader)
- |> Option.map (fun x -> x.GetDebugHeader())
- |> Option.filter (fun x -> x.HasEntries)
- |> Option.bind (fun x -> x.Entries |> Seq.tryFind (fun t -> true))
- |> Option.map (fun x -> x.Data)
- |> Option.filter (fun x -> x.Length > 0x18)
- |> Option.map (fun x ->
- x
- |> Seq.skip 0x18 // size of the debug header
- |> Seq.takeWhile (fun x -> x <> byte 0)
- |> Seq.toArray
- |> System.Text.Encoding.UTF8.GetString)
- |> Option.filter (fun s -> s.Length > 0)
- |> Option.filter (fun s ->
- File.Exists s || (s = (assembly.Name.Name + ".pdb") && (assembly
- |> I.getEmbeddedPortablePdbEntry).IsNotNull))
-
- let internal getPdbWithFallback(assembly : AssemblyDefinition) =
- match getPdbFromImage assembly with
- | None ->
- let foldername = Path.GetDirectoryName assembly.MainModule.FileName
- let filename = Path.GetFileName assembly.MainModule.FileName
- foldername :: (Seq.toList symbolFolders)
- |> Seq.map (I.getSymbolsByFolder filename)
- |> Seq.choose id
- |> Seq.tryFind (fun _ -> true)
- | pdbpath -> pdbpath
-
- // Ensure that we read symbols from the .pdb path we discovered.
- // Cecil currently only does the Path.ChangeExtension(path, ".pdb") fallback if left to its own devices
- // Will fail with InvalidOperationException if there is a malformed file with the expected name
- let internal readSymbols(assembly : AssemblyDefinition) =
- getPdbWithFallback assembly
- |> Option.iter (fun pdbpath ->
- let provider : ISymbolReaderProvider =
- if pdbpath.EndsWith(".pdb", StringComparison.OrdinalIgnoreCase)
- then PdbReaderProvider() :> ISymbolReaderProvider
- else MdbReaderProvider() :> ISymbolReaderProvider
-
- let reader = provider.GetSymbolReader(assembly.MainModule, pdbpath)
+namespace AltCover
+
+open System
+open System.Collections.Generic
+open System.IO
+
+open Mono.Cecil
+open Mono.Cecil.Cil
+open Mono.Cecil.Mdb
+open Mono.Cecil.Pdb
+
+[]
+module internal ProgramDatabase =
+ // "Public" "field"
+ let internal symbolFolders = List()
+
+ // Implementation details
+ module private I =
+
+ // We no longer have to violate Cecil encapsulation to get the PDB path
+ // but we do to get the embedded PDB info
+ let internal getEmbed =
+ (typeof.Assembly.GetTypes()
+ |> Seq.filter (fun m -> m.FullName = "Mono.Cecil.Mixin")
+ |> Seq.head).GetMethod("GetEmbeddedPortablePdbEntry")
+
+ let internal getEmbeddedPortablePdbEntry(assembly : AssemblyDefinition) =
+ getEmbed.Invoke(null, [| assembly.MainModule.GetDebugHeader() :> obj |]) :?> ImageDebugHeaderEntry
+
+ let internal getSymbolsByFolder fileName folderName =
+ let name = Path.Combine(folderName, fileName)
+ let fallback = Path.ChangeExtension(name, ".pdb")
+ if File.Exists(fallback) then
+ Some fallback
+ else
+ let fallback2 = name + ".mdb"
+ // Note -- the assembly path, not the mdb path, because GetSymbolReader wants the assembly path for Mono
+ if File.Exists(fallback2) then Some name else None
+
+ // "Public" API
+ let internal getPdbFromImage(assembly : AssemblyDefinition) =
+ Some assembly.MainModule
+ |> Option.filter (fun x -> x.HasDebugHeader)
+ |> Option.map (fun x -> x.GetDebugHeader())
+ |> Option.filter (fun x -> x.HasEntries)
+ |> Option.bind (fun x -> x.Entries |> Seq.tryFind (fun t -> true))
+ |> Option.map (fun x -> x.Data)
+ |> Option.filter (fun x -> x.Length > 0x18)
+ |> Option.map (fun x ->
+ x
+ |> Seq.skip 0x18 // size of the debug header
+ |> Seq.takeWhile (fun x -> x <> byte 0)
+ |> Seq.toArray
+ |> System.Text.Encoding.UTF8.GetString)
+ |> Option.filter (fun s -> s.Length > 0)
+ |> Option.filter (fun s ->
+ File.Exists s || (s = (assembly.Name.Name + ".pdb") && (assembly
+ |> I.getEmbeddedPortablePdbEntry).IsNotNull))
+
+ let internal getPdbWithFallback(assembly : AssemblyDefinition) =
+ match getPdbFromImage assembly with
+ | None ->
+ let foldername = Path.GetDirectoryName assembly.MainModule.FileName
+ let filename = Path.GetFileName assembly.MainModule.FileName
+ foldername :: (Seq.toList symbolFolders)
+ |> Seq.map (I.getSymbolsByFolder filename)
+ |> Seq.choose id
+ |> Seq.tryFind (fun _ -> true)
+ | pdbpath -> pdbpath
+
+ // Ensure that we read symbols from the .pdb path we discovered.
+ // Cecil currently only does the Path.ChangeExtension(path, ".pdb") fallback if left to its own devices
+ // Will fail with InvalidOperationException if there is a malformed file with the expected name
+ let internal readSymbols(assembly : AssemblyDefinition) =
+ getPdbWithFallback assembly
+ |> Option.iter (fun pdbpath ->
+ let provider : ISymbolReaderProvider =
+ if pdbpath.EndsWith(".pdb", StringComparison.OrdinalIgnoreCase)
+ then PdbReaderProvider() :> ISymbolReaderProvider
+ else MdbReaderProvider() :> ISymbolReaderProvider
+
+ let reader = provider.GetSymbolReader(assembly.MainModule, pdbpath)
assembly.MainModule.ReadSymbols(reader))
\ No newline at end of file
diff --git a/AltCover/Report.fs b/AltCover.Engine/Report.fs
similarity index 100%
rename from AltCover/Report.fs
rename to AltCover.Engine/Report.fs
diff --git a/AltCover/Runner.fs b/AltCover.Engine/Runner.fs
similarity index 99%
rename from AltCover/Runner.fs
rename to AltCover.Engine/Runner.fs
index 35cf8fa24..1958da87e 100644
--- a/AltCover/Runner.fs
+++ b/AltCover.Engine/Runner.fs
@@ -459,10 +459,12 @@ module internal Runner =
let internal addCoberturaSummary() =
summaries <- Cobertura.summary :: summaries
+ let internal initSummary() =
+ summaries <- [ standardSummary ]
+
// "Public"
let internal declareOptions() =
- I.summaries <- []
- I.summaries <- I.standardSummary :: I.summaries
+ I.initSummary()
[ ("r|recorderDirectory=",
(fun x ->
if CommandLine.validateDirectory "--recorderDirectory" x then
diff --git a/AltCover/Strings.eo.resx b/AltCover.Engine/Strings.eo.resx
similarity index 100%
rename from AltCover/Strings.eo.resx
rename to AltCover.Engine/Strings.eo.resx
diff --git a/AltCover/Strings.resx b/AltCover.Engine/Strings.resx
similarity index 100%
rename from AltCover/Strings.resx
rename to AltCover.Engine/Strings.resx
diff --git a/AltCover/TaskIO.fs b/AltCover.Engine/TaskIO.fs
similarity index 100%
rename from AltCover/TaskIO.fs
rename to AltCover.Engine/TaskIO.fs
diff --git a/AltCover/Tasks.fs b/AltCover.Engine/Tasks.fs
similarity index 96%
rename from AltCover/Tasks.fs
rename to AltCover.Engine/Tasks.fs
index cd66d3bef..ef0d7633f 100644
--- a/AltCover/Tasks.fs
+++ b/AltCover.Engine/Tasks.fs
@@ -1,12 +1,10 @@
namespace AltCover
open System
-#if NETCOREAPP2_0
open System.IO
open System.Reflection
open System.Xml
open System.Xml.Linq
-#endif
open System.Diagnostics.CodeAnalysis
open Microsoft.Build.Utilities
@@ -284,7 +282,7 @@ type Echo() =
Console.ForegroundColor <- original
true
-#if NETCOREAPP2_0
+
type RunSettings() =
inherit Task(null)
@@ -316,13 +314,13 @@ type RunSettings() =
else
XDocument()
- let X n = XName.Get n
+ let xname n = XName.Get n
let ensureHas (parent : XContainer) childName =
- match parent.Descendants(X childName) |> Seq.tryHead with
+ match parent.Descendants(xname childName) |> Seq.tryHead with
| Some child -> child
| _ ->
- let extra = XElement(X childName)
+ let extra = XElement(xname childName)
parent.Add extra
extra
@@ -339,14 +337,14 @@ type RunSettings() =
let name = AssemblyName.GetAssemblyName(expected)
let altcover =
XElement
- (X "InProcDataCollector", XAttribute(X "friendlyName", "AltCover"),
+ (xname "InProcDataCollector", XAttribute(xname "friendlyName", "AltCover"),
XAttribute
- (X "uri",
+ (xname "uri",
"InProcDataCollector://AltCover/Recorder/" + name.Version.ToString()),
XAttribute
- (X "assemblyQualifiedName", "AltCover.DataCollector, " + name.FullName),
- XAttribute(X "codebase", expected),
- XElement(X "Configuration", XElement(X "Offload", XText("true"))))
+ (xname "assemblyQualifiedName", "AltCover.DataCollector, " + name.FullName),
+ XAttribute(xname "codebase", expected),
+ XElement(xname "Configuration", XElement(xname "Offload", XText("true"))))
ip2.Add(altcover)
self.Extended <- Path.ChangeExtension(tempFile, ".altcover.runsettings")
@@ -354,5 +352,4 @@ type RunSettings() =
result
finally
- File.Delete(tempFile)
-#endif
\ No newline at end of file
+ File.Delete(tempFile)
\ No newline at end of file
diff --git a/AltCover/Tasks.fsi b/AltCover.Engine/Tasks.fsi
similarity index 99%
rename from AltCover/Tasks.fsi
rename to AltCover.Engine/Tasks.fsi
index f3547e0c2..de22cd260 100644
--- a/AltCover/Tasks.fsi
+++ b/AltCover.Engine/Tasks.fsi
@@ -302,7 +302,6 @@ type Echo =
member Text : string with get, set
end
// ```
-#if NETCOREAPP2_0
// ## Task `AltCover.RunSettings`
// Used by the .net core implementation to inject an AltCover data collector, by creating a temporary run-settings file that includes AltCover as well as any user-defined settings.
//
@@ -334,5 +333,4 @@ type RunSettings =
///
member TestSetting : string with get, set
end
-#endif
// ```
\ No newline at end of file
diff --git a/AltCover/TypeSafe.fs b/AltCover.Engine/TypeSafe.fs
similarity index 100%
rename from AltCover/TypeSafe.fs
rename to AltCover.Engine/TypeSafe.fs
diff --git a/AltCover/TypeSafe.fsi b/AltCover.Engine/TypeSafe.fsi
similarity index 100%
rename from AltCover/TypeSafe.fsi
rename to AltCover.Engine/TypeSafe.fsi
diff --git a/AltCover/Visitor.fs b/AltCover.Engine/Visitor.fs
similarity index 98%
rename from AltCover/Visitor.fs
rename to AltCover.Engine/Visitor.fs
index 01442d3aa..d28aabc28 100644
--- a/AltCover/Visitor.fs
+++ b/AltCover.Engine/Visitor.fs
@@ -164,7 +164,7 @@ type internal KeyRecord =
[]
type internal SequenceType =
| Genuine
- | FakeAfterReturn
+ | FakeAtReturn
[]
module internal KeyStore =
@@ -415,6 +415,8 @@ module internal Visitor =
[]
+ []
let internal locateMatch file dict =
let find = findClosestMatch file dict
@@ -511,8 +513,9 @@ module internal Visitor =
then Exemption.Automatic
else exemption
+ // actually all vestigial classes now the first line is commented out
let internal stripInterfaces (t:TypeDefinition) =
- t.BaseType.IsNotNull ||
+ // t.BaseType.IsNotNull ||
t.Methods |> Seq.exists (fun m -> m.IsAbstract |> not)
let private visitModule (x : ModuleDefinition) included (buildSequence : Node -> seq) =
@@ -689,7 +692,8 @@ module internal Visitor =
nesting > 0)
|> Seq.length
- if mname.StartsWith("<", StringComparison.Ordinal) && mname.IndexOf('|') > 0 then
+ if mname.StartsWith("<", StringComparison.Ordinal) &&
+ charIndexOf mname '|' > 0 then
let index = (indexOfMatchingClosingAngleBracket mname) - 1
cSharpContainingMethod mname t index (methodCallsMethod m)
else
@@ -713,7 +717,7 @@ module internal Visitor =
(mx.FullName <> m.FullName)
&& (methodCallsMethod m mx || methodConstructsType t mx
|| methodLoadsMethod m mx))
- else if n.IndexOf('@') >= 0 then
+ else if charIndexOf n '@' >= 0 then
let tx =
if n.EndsWith("T", StringComparison.Ordinal) then
match t.Methods
@@ -776,7 +780,7 @@ module internal Visitor =
let internal fakeSequencePoint genuine (seq : SequencePoint) (instruction : Instruction) =
match seq with
| null ->
- if genuine = FakeAfterReturn && instruction.IsNotNull
+ if genuine = FakeAtReturn && instruction.IsNotNull
&& instruction.OpCode = OpCodes.Ret then
SequencePoint(instruction, Document(null))
else
@@ -788,7 +792,7 @@ module internal Visitor =
instructions
|> Seq.map (fun i ->
let seq = dbg.GetSequencePoint i
- fakeSequencePoint genuine seq i.Previous)
+ fakeSequencePoint genuine seq i)
|> Seq.tryFind isSequencePoint
let internal findSequencePoint (dbg : MethodDebugInformation) (instructions : Instruction seq) =
@@ -828,7 +832,7 @@ module internal Visitor =
if isNull state || finish = state.Previous then None else Some(state, state.Next))
start
|> Seq.toList
- findEffectiveSequencePoint FakeAfterReturn dbg range
+ findEffectiveSequencePoint FakeAtReturn dbg range
let rec internal lastOfSequencePoint (dbg : MethodDebugInformation) (i : Instruction) =
let n = i.Next
diff --git a/AltCover/WhatIfExtension.fs b/AltCover.Engine/WhatIfExtension.fs
similarity index 100%
rename from AltCover/WhatIfExtension.fs
rename to AltCover.Engine/WhatIfExtension.fs
diff --git a/AltCover/WhatIfExtension.fsi b/AltCover.Engine/WhatIfExtension.fsi
similarity index 100%
rename from AltCover/WhatIfExtension.fsi
rename to AltCover.Engine/WhatIfExtension.fsi
diff --git a/AltCover.GlobalTool/runtimeconfig.template.json b/AltCover.Engine/runtimeconfig.template.json
similarity index 100%
rename from AltCover.GlobalTool/runtimeconfig.template.json
rename to AltCover.Engine/runtimeconfig.template.json
diff --git a/AltCover.Fake.DotNet.Testing.AltCover/altcover.fake.dotnet.testing.altcover.core.fsproj b/AltCover.Fake.DotNet.Testing.AltCover/AltCover.Fake.DotNet.Testing.AltCover.fsproj
similarity index 75%
rename from AltCover.Fake.DotNet.Testing.AltCover/altcover.fake.dotnet.testing.altcover.core.fsproj
rename to AltCover.Fake.DotNet.Testing.AltCover/AltCover.Fake.DotNet.Testing.AltCover.fsproj
index 48ef6c8c6..24ca8875e 100644
--- a/AltCover.Fake.DotNet.Testing.AltCover/altcover.fake.dotnet.testing.altcover.core.fsproj
+++ b/AltCover.Fake.DotNet.Testing.AltCover/AltCover.Fake.DotNet.Testing.AltCover.fsproj
@@ -1,7 +1,8 @@
- netstandard2.0;net462
+ netstandard2.0;net472
+ netstandard2.0
AltCover.Fake.DotNet.Testing.AltCover
AltCover.Fake.DotNet.Testing.AltCover
false
@@ -31,15 +32,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -57,11 +58,11 @@
all
runtime; build; native; contentfiles; analyzers
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -70,7 +71,7 @@
-
+
\ No newline at end of file
diff --git a/AltCover.Fake/altcover.fake.core.fsproj b/AltCover.Fake/AltCover.Fake.fsproj
similarity index 83%
rename from AltCover.Fake/altcover.fake.core.fsproj
rename to AltCover.Fake/AltCover.Fake.fsproj
index af0a02607..00c41e0d1 100644
--- a/AltCover.Fake/altcover.fake.core.fsproj
+++ b/AltCover.Fake/AltCover.Fake.fsproj
@@ -1,7 +1,8 @@
- netstandard2.0;net46
+ netstandard2.0;net472
+ netstandard2.0
AltCover.Fake
AltCover.Fake
false
@@ -44,20 +45,19 @@
-
-
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
\ No newline at end of file
diff --git a/AltCover.Fake/Fake.fs b/AltCover.Fake/Fake.fs
index 2aa2c5d12..8eab114fe 100644
--- a/AltCover.Fake/Fake.fs
+++ b/AltCover.Fake/Fake.fs
@@ -49,7 +49,7 @@ type Command private () =
let target =
match toolType with
| Framework _ -> "AltCover.exe"
- | _ -> "AltCover.NetCoreApp.dll"
+ | _ -> "AltCover.dll"
match Directory.GetFiles(root, target, SearchOption.AllDirectories)
|> Seq.tryHead with
| Some path -> path |> Path.GetFullPath
@@ -89,6 +89,11 @@ module DotNet =
(result,
(if f.Name <> "Common@" then f.GetValue self else common))
+ let internal extractParameters (o : DotNet.TestOptions) =
+ let t = o.Common.GetType()
+ let p = t.GetProperty("CustomParams")
+ p.GetValue(o.Common, null) :?> string Option
+
type DotNet.TestOptions with
// NOTE: the MSBuildParams member of TestOptions did not exist in Fake 5.0.0
@@ -96,12 +101,6 @@ module DotNet =
[]
member private self.ExtendCustomParams options =
- let custom = self.Common.CustomParams
-
- let extended =
- match custom with
- | None -> Some options
- | Some thing -> Some(thing + " " + options)
// the constructors are version dependent
let optionsConstructor = self.Common.GetType().GetConstructors().[0]
@@ -111,6 +110,11 @@ module DotNet =
|> Array.map activate
let common = optionsConstructor.Invoke(args)
+ let extended =
+ match self |> extractParameters with
+ | None -> Some options
+ | Some thing -> Some(thing + " " + options)
+
self.Common.GetType().GetFields(BindingFlags.NonPublic ||| BindingFlags.Instance)
|> Array.iter (setCustomParams common extended self.Common)
let testOptionsConstructor = self.GetType().GetConstructors().[0]
diff --git a/AltCover.NetCoreApp/altcover.netcoreapp.core.fsproj b/AltCover.FontSupport/AltCover.FontSupport.csproj
similarity index 50%
rename from AltCover.NetCoreApp/altcover.netcoreapp.core.fsproj
rename to AltCover.FontSupport/AltCover.FontSupport.csproj
index 8ae05d87b..6b54cad4f 100644
--- a/AltCover.NetCoreApp/altcover.netcoreapp.core.fsproj
+++ b/AltCover.FontSupport/AltCover.FontSupport.csproj
@@ -1,54 +1,40 @@
- Exe
- netcoreapp2.0;net45
- AltCover.NetCoreApp
+ netstandard2.0;net472
+ AltCover.FontSupport
+ AltCover.FontSupport
false
true
true
true
- $(SolutionDir)AltCover/AltCover.ico
- $(ProjectDir)../
+ $(ProjectDir)../
+ true
+ $(SolutionDir)\Build\Infrastructure.snk
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- --keyfile:$(SolutionDir)Build\Infrastructure.snk
-
- 4
- true
-
+
TRACE;DEBUG;CODE_ANALYSIS
-
-
+
-
+
+
all
- runtime; build; native; contentfiles; analyzers
+ runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
+
all
- runtime; build; native; contentfiles; analyzers; buildtransitive
+ runtime; build; native; contentfiles; analyzers
-
-
-
-
\ No newline at end of file
diff --git a/AltCover.FontSupport/AssemblyInfo.cs b/AltCover.FontSupport/AssemblyInfo.cs
new file mode 100644
index 000000000..a3e4efd11
--- /dev/null
+++ b/AltCover.FontSupport/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("AltCover.FontSupport")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCulture("")]
+[assembly: System.CLSCompliant(true)]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("BF222DBB-6E7F-4AF5-9B5F-D43026DF5DD7")]
\ No newline at end of file
diff --git a/AltCover.FontSupport/ChooseFont.cs b/AltCover.FontSupport/ChooseFont.cs
new file mode 100644
index 000000000..e23f8a23b
--- /dev/null
+++ b/AltCover.FontSupport/ChooseFont.cs
@@ -0,0 +1,719 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Runtime.InteropServices;
+
+namespace AltCover.FontSupport
+{
+ internal static class NativeMethods
+ {
+ [DllImport("comdlg32", CharSet = CharSet.Ansi, EntryPoint = "ChooseFont", SetLastError = true)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ public extern static bool ChooseFont(IntPtr lpcf);
+ }
+
+ public static class Fonts
+ {
+ public static IEnumerable Wish()
+ {
+#if NETSTANDARD2_0
+ return Fake.Core.ProcessUtils.findFilesOnPath("wish");
+#else
+ return Enumerable.Empty();
+#endif
+ }
+
+ public static LogFont SelectWish(string font)
+ {
+ var info = new ProcessStartInfo()
+ {
+ Arguments = String.Empty,
+ CreateNoWindow = true,
+ ErrorDialog = false,
+ FileName = Wish().FirstOrDefault(),
+ RedirectStandardError = true,
+ RedirectStandardInput = true,
+ RedirectStandardOutput = true
+ };
+
+ //Console.WriteLine("font in '{0}'", font);
+ var _ = LogFont.TryParse(font, out var lf);
+ var tkfont = lf.ToWishString();
+ //Console.WriteLine("font in '{0}'", tkfont);
+
+ using (var wish = Process.Start(info))
+ {
+ var si = wish.StandardInput;
+ si.WriteLine("wm geometry . 1x1");
+ si.WriteLine("wm attributes . -alpha 0.0");
+ si.WriteLine("proc fontchosen {f} {");
+ si.WriteLine(" puts stdout \"***fontchosen***\"");
+ si.WriteLine(" puts stdout $f");
+ si.WriteLine(" destroy .");
+ si.WriteLine("}");
+ si.WriteLine("proc closeout {} {");
+ si.WriteLine(" [expr {");
+ si.WriteLine(" [tk fontchooser configure -visible] ?");
+ si.WriteLine(" \"raise\" : \"destroy\" }] .");
+ si.WriteLine("}");
+ si.WriteLine("bind . <> closeout");
+ si.WriteLine("tk fontchooser configure -parent . -font "
+ + tkfont + " -command fontchosen");
+ si.WriteLine("tk fontchooser show");
+ wish.WaitForExit();
+ var found = false;
+
+ var so = wish.StandardOutput;
+ while (!found)
+ {
+ var sol = so.ReadLine();
+ found = string.IsNullOrEmpty(sol) ||
+ sol.Equals("***fontchosen***");
+ }
+
+ if (!found)
+ return null;
+
+ var line = so.ReadLine();
+ //Console.WriteLine("font out '{0}'", line);
+
+ if (!LogFont.TryWishParse(line, out var fontOut))
+ return null;
+ //Console.WriteLine("font out'{0}'", fontOut);
+ return fontOut;
+ }
+ }
+
+ [SuppressMessage("Gendarme.Rules.Design", "Generic.AvoidMethodWithUnusedGenericTypeRule",
+ Justification = "private method, not for morts.")]
+ private static IntPtr Allocate()
+ {
+ var size = Marshal.SizeOf();
+ return Marshal.AllocHGlobal(size);
+ }
+
+ public static LogFont SelectWin32(string font, IntPtr handle)
+ {
+ var _ = LogFont.TryParse(font, out LogFont logfont);
+ IntPtr pLogfont = Allocate(); //Marshal.AllocHGlobal(Marshal.SizeOf(logfont));
+ try
+ {
+ // Fudge-factor here
+ logfont.height = -(int)Math.Round(Math.Abs(logfont.height * 4.0 / 3.0));
+ logfont.italic = (byte)(logfont.italic == (byte)0 ? 0 : 255);
+ Marshal.StructureToPtr(logfont, pLogfont, false);
+
+ ChooseFont choosefont = new ChooseFont();
+ IntPtr pChoosefont = Allocate(); //Marshal.AllocHGlobal(Marshal.SizeOf(choosefont));
+ try
+ {
+ choosefont.structSize = Marshal.SizeOf(choosefont);
+ choosefont.owner = handle;
+ choosefont.minSize = 64;
+ choosefont.maxSize = 64;
+ choosefont.options = (int)ChooseFontOptions.ScreenFonts
+ | (int)ChooseFontOptions.ForceFontExist
+ | (int)ChooseFontOptions.InactiveFonts
+ | (int)ChooseFontOptions.InitToLogFont
+ | (int)ChooseFontOptions.ScaledOnly
+ | (int)ChooseFontOptions.FixedPitchOnly;
+ choosefont.logFont = pLogfont;
+ choosefont.pointSize = logfont.height * 10;
+
+ Marshal.StructureToPtr(choosefont, pChoosefont, false);
+
+ if (NativeMethods.ChooseFont(pChoosefont))
+ {
+ var chosen = Marshal.PtrToStructure(pChoosefont, typeof(ChooseFont)) as ChooseFont;
+ var newfont = Marshal.PtrToStructure(chosen.logFont, typeof(LogFont)) as LogFont;
+ newfont.height = chosen.pointSize / 10;
+ return newfont;
+ }
+
+ return null;
+ }
+ finally
+ {
+ Marshal.FreeHGlobal(pChoosefont);
+ }
+ }
+ finally
+ {
+ Marshal.FreeHGlobal(pLogfont);
+ }
+ }
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi),
+ SuppressMessage("Gendarme.Rules.Performance", "AvoidUnusedPrivateFieldsRule",
+ Justification = "Represents a native structure"),
+ SuppressMessage("Gendarme.Rules.Design", "AvoidVisibleFieldsRule",
+ Justification = "Represents a native structure"),
+ SuppressMessage("Gendarme.Rules.Security", "NativeFieldsShouldNotBeVisibleRule",
+ Justification = "Represents a native structure"),
+ SuppressMessage("Gendarme.Rules.BadPractice", "PreferSafeHandleRule",
+ Justification = "Represents a native structure")
+ ]
+ public class ChooseFont
+ {
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int structSize;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr owner;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr dc;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr logFont;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int pointSize;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int options; //flags
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", Justification = "Queen's English, m80")]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int colours;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr customData;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr hook;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public string templateName;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Security", "CA2111:PointersShouldNotBeVisible", Justification = "Represents a native structure")]
+ public IntPtr instance;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public string style;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public short fontType;
+
+ private readonly short alignmentDummy;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int minSize;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int maxSize;
+ }
+
+ [Flags,
+ Serializable]
+ public enum ChooseFontOptions
+ {
+ ScreenFonts = 0x00000001,
+ PrinterFonts = 0x00000002,
+ Both = (ScreenFonts | PrinterFonts),
+ ShowHelp = 0x00000004,
+ EnableHook = 0x00000008,
+ EnableTemplate = 0x00000010,
+ EnableTemplateHandle = 0x00000020,
+ InitToLogFont = 0x00000040,
+ UseStyle = 0x00000080,
+ Effects = 0x00000100,
+ Apply = 0x00000200,
+ AnsiOnly = 0x00000400,
+ ScriptsOnly = AnsiOnly,
+ NoVectorFonts = 0x00000800,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ NoOemFonts = NoVectorFonts,
+
+ NoSimulations = 0x00001000,
+ LimitSize = 0x00002000,
+ FixedPitchOnly = 0x00004000,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Wysiwyg = 0x00008000,
+
+ ForceFontExist = 0x00010000,
+ ScaledOnly = 0x00020000,
+ TTOnly = 0x00040000,
+ NoFace = 0x00080000,
+ NoStyle = 0x00100000,
+ NoSize = 0x00200000,
+ SelectScript = 0x00400000,
+ NoScript = 0x00800000,
+ NoVerticalFonts = 0x01000000,
+ InactiveFonts = 0x02000000
+ }
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi),
+ SuppressMessage("Gendarme.Rules.Design", "AvoidVisibleFieldsRule",
+ Justification = "Represents a native structure"),
+ SuppressMessage("Gendarme.Rules.Smells", "AvoidSpeculativeGeneralityRule",
+ Justification = "Seriously, u wot m8!?")
+ ]
+ public class LogFont
+ {
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int height;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int width;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int escapement;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int orientation;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public int weight;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte italic;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte underline;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ public byte strikeOut;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte charSet;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte outPrecision;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte clipPrecision;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte quality;
+
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public byte pitchAndFamily;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
+ [SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Justification = "Represents a native structure")]
+ public string faceName = string.Empty;
+
+ public LogFont()
+ {
+ var p = (int)Environment.OSVersion.Platform;
+ var isWindows = p <= 3;
+
+ faceName = isWindows ? "Courier New" : "Monospace";
+ weight = (int)FontWeight.Normal;
+ height = 10;
+ }
+
+ [SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison",
+ Justification = "Preferred overload, no comparison exists in netstd2.0/net472")]
+ private static int CharIndexOf(string name, char token)
+ {
+ return name.IndexOf(token);
+ }
+
+ // Pango-style text
+ [SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods",
+ Justification = "validate local variable ''(*decode)'', which was reassigned from parameter 'decode', before using it -- u wot m8!?")]
+ public static bool TryParse(string encoded, out LogFont decode)
+ {
+ decode = new LogFont();
+ if (string.IsNullOrEmpty(encoded))
+ return false;
+ var core = encoded;
+
+ // discard variations
+ var at = CharIndexOf(core, '@');
+ if (at >= 0)
+ core = core.Substring(0, at);
+
+ core = core.TrimEnd();
+
+ // look for a size
+ var end = core.LastIndexOfAny(new char[] { ' ', ',' });
+ if (end >= 0)
+ {
+ var size = core.Substring(end + 1).TrimEnd();
+ if (size.EndsWith("px", StringComparison.Ordinal))
+ size = size.Substring(0, size.Length - 2);
+ var sized = Int32.TryParse(size, out int fontsize);
+ if (sized)
+ {
+ decode.height = fontsize;
+ core = core.Substring(0, end);
+ }
+ }
+
+ // style words
+ end = core.LastIndexOfAny(new char[] { ' ', ',' });
+ while (end >= 0)
+ {
+ var slug = core.Substring(end + 1).TrimEnd();
+ bool matched(string item, LogFont font)
+ {
+ switch (item)
+ {
+ case "Normal":
+ break;
+
+ case "Roman":
+ break; // todo
+ case "Oblique":
+ font.italic = 127;
+ break;
+
+ case "Italic":
+ font.italic = 255;
+ break;
+
+ case "Small-Caps":
+ break; // todo
+ case "Thin":
+ font.weight = (int)FontWeight.Thin;
+ break;
+
+ case "Ultra-Light":
+ case "Extra-Light":
+ font.weight = (int)FontWeight.Ultralight;
+ break;
+
+ case "Light":
+ font.weight = (int)FontWeight.Light;
+ break;
+
+ case "Semi-Light":
+ case "Demi-Light":
+ font.weight = (int)FontWeight.Semilight;
+ break;
+
+ case "Book":
+ font.weight = (int)FontWeight.Book;
+ break;
+
+ case "Regular":
+ font.weight = (int)FontWeight.Normal;
+ break;
+
+ case "Medium":
+ font.weight = (int)FontWeight.Medium;
+ break;
+
+ case "Semi-Bold":
+ case "Demi-Bold":
+ font.weight = (int)FontWeight.Semibold;
+ break;
+
+ case "Bold":
+ font.weight = (int)FontWeight.Bold;
+ break;
+
+ case "Ultra-Bold":
+ case "Extra-Bold":
+ font.weight = (int)FontWeight.Ultrabold;
+ break;
+
+ case "Heavy":
+ case "Black":
+ font.weight = (int)FontWeight.Heavy;
+ break;
+
+ case "Ultra-Heavy":
+ case "Extra-Heavy":
+ case "Ultra-Black":
+ case "Extra-Black":
+ font.weight = (int)FontWeight.Ultraheavy;
+ break;
+
+ case "Ultra-Condensed":
+ break; // todo
+ case "Extra-Condensed":
+ break; // todo
+ case "Condensed":
+ break; // todo
+ case "Semi-Condensed":
+ break; // todo
+ case "Semi-Expanded":
+ break; // todo
+ case "Expanded":
+ break; // todo
+ case "Extra-Expanded":
+ break; // todo
+ case "Ultra-Expanded":
+ break; // todo
+ case "Not-Rotated":
+ break; // todo
+ case "South":
+ break; // todo
+ case "Upside-Down":
+ break; // todo
+ case "North":
+ break; // todo
+ case "Rotated-Left":
+ break; // todo
+ case "East":
+ break; // todo
+ case "Rotated-Right":
+ break; // todo
+ case "West":
+ break; // todo
+ default:
+ return false;
+ }
+ return true;
+ }
+
+ if (!matched(slug, decode))
+ {
+ break;
+ }
+
+ core = core.Substring(0, end);
+ end = core.LastIndexOfAny(new char[] { ' ', ',' });
+ }
+
+ // Family list, just want the first one
+ core = core.TrimEnd(' ', ',');
+ end = CharIndexOf(core, ',');
+ if (end >= 0)
+ core = core.Substring(0, end);
+
+ decode.faceName = core;
+
+ return core.Length > 0;
+ }
+
+ // Tcl/Tk-style text like {Consolas} 12 bold roman
+ [SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods",
+ Justification = "validate local variable ''(*decode)'', which was reassigned from parameter 'decode', before using it -- u wot m8!?")]
+ public static bool TryWishParse(string encoded, out LogFont decode)
+ {
+ decode = new LogFont();
+ if (string.IsNullOrEmpty(encoded))
+ return false;
+
+ var core = encoded;
+ core = core.TrimEnd();
+
+ var curly = CharIndexOf(core, '}');
+ if (curly > 0)
+ {
+ decode.faceName = core.Substring(1, curly - 1);
+ core = core.Substring(curly + 1);
+ }
+ else
+ {
+ var space = CharIndexOf(core, ' ');
+ if (space < 0)
+ return false;
+ decode.faceName = core.Substring(0, space);
+ core = core.Substring(space + 1);
+ }
+
+ foreach (var token in core.Split(' '))
+ {
+ if (token.Equals("italic", StringComparison.OrdinalIgnoreCase))
+ decode.italic = 255;
+ if (token.Equals("bold", StringComparison.OrdinalIgnoreCase))
+ decode.weight = (int)FontWeight.Bold;
+ if (Int32.TryParse(token, out var points))
+ decode.height = points;
+ }
+
+ return true;
+ }
+
+ public override string ToString()
+
+ {
+ // Pango names like Fira Code Bold Oblique 17
+ // This is not quite sufficient
+ // NORMAL: the font is upright.
+ // OBLIQUE: the font is slanted, but in a roman style.
+ // ITALIC: the font is slanted in an italic style.
+ //
+ // AOB??
+ var slant = string.Empty;
+ if (this.italic != 0) slant = "Italic ";
+ return FormattableString.Invariant($"{faceName}, {(FontWeight)weight} {slant}{height}");
+ }
+
+ public string ToWishString()
+ {
+ // Tk names like {{Consolas} 12 bold roman}
+ var w = "normal";
+ if (weight > (int)FontWeight.Normal) w = "bold";
+ var i = "italic";
+ if (italic == 0) i = "roman";
+ return FormattableString.Invariant($"{{{{{faceName}}} {height} {w} {i}}}");
+ }
+ }
+
+ [Serializable]
+ public enum FontWeight
+ {
+ DoNotCare = 0,
+ Thin = 100,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Ultralight = 200,
+
+ Light = 300,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Semilight = 350,
+
+ Book = 380,
+ Normal = 400, //aka Regular
+ Medium = 500,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Semibold = 600,
+
+ Bold = 700,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Ultrabold = 800,
+
+ Heavy = 900,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Ultraheavy = 1000
+ }
+
+ [SuppressMessage("Gendarme.Rules.Design", "EnumsShouldUseInt32Rule",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
+ Justification = "Represents a byte-valued field"),
+ Serializable]
+ public enum FontCharSet : byte
+ {
+ Ansi = 0,
+ Default = 1,
+ Symbol = 2,
+
+ [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ ShiftJIS = 128,
+
+ Hangeul = 129,
+ Hangul = 129,
+ GB2312 = 134,
+ ChineseBig5 = 136,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Oem = 255,
+
+ [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ Johab = 130,
+
+ Hebrew = 177,
+ Arabic = 178,
+ Greek = 161,
+ Turkish = 162,
+ Vietnamese = 163,
+ Thai = 222,
+ EastEurope = 238,
+ Russian = 204,
+ Mac = 77,
+ Baltic = 186,
+ }
+
+ [SuppressMessage("Gendarme.Rules.Design", "EnumsShouldUseInt32Rule",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
+ Justification = "Represents a byte-valued field"),
+ Serializable]
+ public enum FontPrecision : byte
+ {
+ Default = 0,
+ String = 1,
+ Character = 2,
+ Stroke = 3,
+ TT = 4,
+ Device = 5,
+ Raster = 6,
+ TTOnly = 7,
+ Outlines = 8,
+ ScreenOutline = 9,
+ PSOnly = 10,
+ }
+
+ [SuppressMessage("Gendarme.Rules.Design", "EnumsShouldUseInt32Rule",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
+ Justification = "Represents a byte-valued field"),
+ Serializable]
+ public enum FontClipPrecision : byte
+ {
+ Default = 0,
+ Character = 1,
+ Stroke = 2,
+ Mask = 0xf,
+ LHAngles = (1 << 4),
+ TTAlways = (2 << 4),
+
+ [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly",
+ Justification = "Seriously, u wot m8!?")]
+ DFADisable = (4 << 4),
+
+ Embedded = (8 << 4),
+ }
+
+ [SuppressMessage("Gendarme.Rules.Design", "EnumsShouldUseInt32Rule",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
+ Justification = "Represents a byte-valued field"),
+ Serializable]
+ public enum FontQuality : byte
+ {
+ Default = 0,
+ Draft = 1,
+ Proof = 2,
+ NonAntiAliased = 3,
+ AntiAliased = 4,
+ ClearType = 5,
+ ClearTypeNatural = 6,
+ }
+
+ [Flags,
+ SuppressMessage("Gendarme.Rules.Design", "EnumsShouldUseInt32Rule",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
+ Justification = "Represents a byte-valued field"),
+ SuppressMessage("Microsoft.Design", "CA1008:EnumsShouldHaveZeroValue",
+ Justification = "Seriously, u wot m8!?"),
+ Serializable]
+ public enum FontPitchAndFamilyOptions : byte
+ {
+ Default = 0,
+ Fixed = 1,
+ Variable = 2,
+ DoNotCare = (0 << 4),
+ Roman = (1 << 4),
+ Swiss = (2 << 4),
+ Modern = (3 << 4),
+ Script = (4 << 4),
+ Decorative = (5 << 4),
+ }
+}
\ No newline at end of file
diff --git a/AltCover.GlobalTool/global-altcover.core.fsproj b/AltCover.GlobalTool/global-altcover.core.fsproj
deleted file mode 100644
index 490c53895..000000000
--- a/AltCover.GlobalTool/global-altcover.core.fsproj
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
- altcover
- True
- Exe
- netcoreapp2.1
- global-altcover
- false
- true
- true
- true
- $(SolutionDir)AltCover/AltCover.ico
- $(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
- $(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- --keyfile:$(SolutionDir)Build\Infrastructure.snk
- TRACE;GLOBALTOOL
-
-
-
- $(DefineConstants);DEBUG;CODE_ANALYSIS
- 4
- true
-
-
-
-
-
- PreserveNewest
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AltCover.PowerShell/altcover.powershell.core.fsproj b/AltCover.PowerShell/AltCover.PowerShell.fsproj
similarity index 60%
rename from AltCover.PowerShell/altcover.powershell.core.fsproj
rename to AltCover.PowerShell/AltCover.PowerShell.fsproj
index 106dc44a5..d13bb92eb 100644
--- a/AltCover.PowerShell/altcover.powershell.core.fsproj
+++ b/AltCover.PowerShell/AltCover.PowerShell.fsproj
@@ -1,7 +1,8 @@
- netstandard2.0;net47
+ netstandard2.0;net472
+ netstandard2.0
AltCover.PowerShell
AltCover.PowerShell
false
@@ -12,7 +13,6 @@
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
$(OutputPath)\$(TargetFramework)\$(AssemblyName).xml
- true
@@ -47,47 +47,23 @@
All
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AltCover.PowerShell/XhtmlReports.fs b/AltCover.PowerShell/XhtmlReports.fs
index 184ad790b..3b8674f17 100644
--- a/AltCover.PowerShell/XhtmlReports.fs
+++ b/AltCover.PowerShell/XhtmlReports.fs
@@ -47,6 +47,8 @@ type ConvertToBarChartCommand() =
///
/// Create transformed document
///
+ []
override self.ProcessRecord() =
let here = Directory.GetCurrentDirectory()
try
diff --git a/altcover.recorder.core.sln b/AltCover.Recorder.sln
similarity index 76%
rename from altcover.recorder.core.sln
rename to AltCover.Recorder.sln
index 615148b15..9048b5409 100644
--- a/altcover.recorder.core.sln
+++ b/AltCover.Recorder.sln
@@ -3,11 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29318.209
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.recorder.core", "AltCover.Recorder\altcover.recorder.core.fsproj", "{85B49E3C-F5B0-40F5-8DB5-1464BEC10E3A}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Recorder", "AltCover.Recorder\AltCover.Recorder.fsproj", "{85B49E3C-F5B0-40F5-8DB5-1464BEC10E3A}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.recorder.tests.core", "Recorder.Tests\altcover.recorder.tests.core.fsproj", "{7F197884-A015-4D01-9543-AF0837A4BE33}"
-EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.shadow.core", "AltCover.Shadow\altcover.shadow.core.fsproj", "{6B75CB41-5A32-4689-9659-6ACC264EA0EF}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Recorder.Tests", "Recorder.Tests\AltCover.Recorder.Tests.fsproj", "{7F197884-A015-4D01-9543-AF0837A4BE33}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items", "{97367D43-64EF-48E1-B6B4-D951C783E6E1}"
ProjectSection(SolutionItems) = preProject
@@ -49,9 +47,6 @@ Global
{7F197884-A015-4D01-9543-AF0837A4BE33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F197884-A015-4D01-9543-AF0837A4BE33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F197884-A015-4D01-9543-AF0837A4BE33}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6B75CB41-5A32-4689-9659-6ACC264EA0EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6B75CB41-5A32-4689-9659-6ACC264EA0EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6B75CB41-5A32-4689-9659-6ACC264EA0EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AltCover.Recorder/altcover.recorder.core.fsproj b/AltCover.Recorder/AltCover.Recorder.fsproj
similarity index 67%
rename from AltCover.Recorder/altcover.recorder.core.fsproj
rename to AltCover.Recorder/AltCover.Recorder.fsproj
index e5e6a1669..3fd4ceb0a 100644
--- a/AltCover.Recorder/altcover.recorder.core.fsproj
+++ b/AltCover.Recorder/AltCover.Recorder.fsproj
@@ -1,7 +1,7 @@
- netstandard2.0;net20
+ net20
AltCover.Recorder
AltCover.Recorder
false
@@ -10,20 +10,20 @@
true
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- --keyfile:$(ProjectDir)..\Build\Infrastructure.snk --standalone $(StaticLink) --staticlink:ICSharpCode.SharpZipLib
- NET2
- TRACE;$(ExtraDefines)
+ TRACE
+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk --standalone --staticlink:ICSharpCode.SharpZipLib
- TRACE;DEBUG;CODE_ANALYSIS;$(ExtraDefines)
+ TRACE;DEBUG;CODE_ANALYSIS
4
52
true
+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
@@ -33,24 +33,26 @@
-
-
all
runtime; build; native; contentfiles; analyzers
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+ ..\ThirdParty\ziplib.net20\ICSharpCode.SharpZipLib.dll
+
+
+
+
+
\ No newline at end of file
diff --git a/AltCover.Recorder/Base.fs b/AltCover.Recorder/Base.fs
index 95b302b35..1885c9e4e 100644
--- a/AltCover.Recorder/Base.fs
+++ b/AltCover.Recorder/Base.fs
@@ -1,12 +1,8 @@
#if RUNNER
namespace AltCover
#else
-#if AVALONIA
-namespace AltCover
-#else
namespace AltCover.Recorder
#endif
-#endif
open System
open System.Collections.Generic
@@ -20,10 +16,15 @@ type internal ReportFormat =
| OpenCover = 1
| OpenCoverWithTracking = 2
-#if !AVALONIA
-
#if !RUNNER
open ICSharpCode.SharpZipLib.Zip
+[]
+[]
+[]
+type internal ExcludeFromCodeCoverageAttribute() =
+ inherit Attribute()
#endif
type internal Sampling =
@@ -32,7 +33,7 @@ type internal Sampling =
// TODO isolate where
#if RUNNER
-[]
#endif
@@ -43,20 +44,12 @@ type internal Tag =
| Both = 3
| Table = 4
-#if NET2
-[]
-#else
-[]
-#endif
+[]
[]
type internal Pair =
{ Time : int64; Call : int }
-#if NET2
-[]
-#else
-[]
-#endif
+[]
[]
type internal Track =
| Null
@@ -64,12 +57,11 @@ type internal Track =
| Call of int
| Both of Pair
| Table of Dictionary>
+ with
+ static member internal Entry = "\u2611" // BALLOT BOX WITH CHECK
+ static member internal Exit = "\u2612" // BALLOT BOX WITH X
and []
-#if NET2
-[]
-#else
-[]
-#endif
+ []
internal PointVisit =
{
mutable Count : int64
@@ -168,12 +160,23 @@ module internal Counter =
then t1
else t2
+ []
+ let
+#if !DEBUG
+ inline
+#endif
+ internal selectNodes (node:XmlNode) name =
+ node.SelectNodes(name)
+ |> Seq.cast
+
// //
// // Save sequence point hit counts to xml report file
// //
// // The coverage results to incorporate
// // The coverage file to update as a stream
- []
let internal updateReport (postProcess : XmlDocument -> unit)
@@ -209,12 +212,7 @@ module internal Counter =
let (m, i, m', s, v) = xmlByFormat format
- #if NET2
- let
- #else
- use
- #endif
- moduleNodes = coverageDocument.SelectNodes(m)
+ let moduleNodes = selectNodes coverageDocument m
moduleNodes
|> Seq.cast
|> Seq.map (fun el -> el.GetAttribute(i), el)
@@ -225,23 +223,13 @@ module internal Counter =
// affectedModule.Descendants(XName.Get("seqpnt"))
// Get the methods, then flip their
// contents before concatenating
- #if NET2
- let
- #else
- use
- #endif
- nn = affectedModule.SelectNodes(m')
+ let nn = selectNodes affectedModule m'
nn
|> Seq.cast
|> Seq.collect (fun (method : XmlElement) ->
s
|> Seq.collect (fun (name, flag) ->
- #if NET2
- let
- #else
- use
- #endif
- nodes = method.SelectNodes(name)
+ let nodes = selectNodes method name
nodes
|> Seq.cast
|> Seq.map (fun x -> (x, flag))
@@ -306,7 +294,7 @@ module internal Counter =
)))
hitcount
#endif
- []
let doFlush postProcess pointProcess own counts format coverageFile outputFile =
@@ -335,7 +323,7 @@ module internal Counter =
1L
#endif
- []
[ Stream
try
+ ZipConstants.DefaultCodePage <- 65001 //UTF-8 as System.IO.Compression.ZipFile uses internally
let zip = new ZipFile(container)
try
let entryName = report |> Path.GetFileName
@@ -402,5 +391,4 @@ module internal Counter =
| :? ZipException -> use reader = new MemoryStream()
I.doFlush postProcess pointProcess own counts format reader target
-#endif // !RUNNER
-#endif // !AVALONIA
\ No newline at end of file
+#endif // !RUNNER
\ No newline at end of file
diff --git a/AltCover.Recorder/Recorder.fs b/AltCover.Recorder/Recorder.fs
index a76a5a0fd..eaf5772c5 100644
--- a/AltCover.Recorder/Recorder.fs
+++ b/AltCover.Recorder/Recorder.fs
@@ -35,10 +35,10 @@ module Instance =
/// This property's IL code is modified to store the user chosen override if applicable
///
[]
- []
- []
let
@@ -68,7 +68,7 @@ module Instance =
[]
let Token = "AltCover"
- []
let mutable internal supervision =
@@ -133,11 +133,13 @@ module Instance =
//let s = sprintf "push %d -> %A" x self.caller
//System.Diagnostics.Debug.WriteLine(s)
member self.Pop() =
- self.caller <-
+ let (stack, head) =
match self.caller with
| []
- | [ 0 ] -> [ 0 ]
- | _ :: xs -> xs
+ | [ 0 ] ->([ 0 ], None)
+ | h :: xs -> (xs, Some h)
+ self.caller <- stack
+ head
//let s = sprintf "pop -> %A"self.caller
//System.Diagnostics.Debug.WriteLine(s)
@@ -223,10 +225,9 @@ module Instance =
if counts.Count > 0 then clear()
trace.OnVisit counts moduleId hitPointId context)
- []
+ []
let internal logException moduleId hitPointId context x =
let text =
[| sprintf "ModuleId = %A" moduleId
@@ -356,19 +357,26 @@ module Instance =
then I.payloadSelector I.isOpenCoverRunner
else Null) moduleId hitPointId
+ // The moduleId strings are not the hash or guids normally found there
let Push caller = I.push caller
- let Pop() = I.pop()
+ if CoverageFormat = ReportFormat.OpenCoverWithTracking &&
+ I.isOpenCoverRunner()
+ then I.visitSelection (Time DateTime.UtcNow.Ticks) Track.Entry caller
+ let Pop() = let caller = I.pop()
+ if CoverageFormat = ReportFormat.OpenCoverWithTracking &&
+ I.isOpenCoverRunner() &&
+ caller.IsSome
+ then I.visitSelection (Time DateTime.UtcNow.Ticks) Track.Exit caller.Value
+
// Used by the datacollector
let FlushFinish() = I.flushAll ProcessExit
-#if SHADOW
[]
[]
-()
-#endif
\ No newline at end of file
+()
\ No newline at end of file
diff --git a/AltCover.Recorder/Tracer.fs b/AltCover.Recorder/Tracer.fs
index 6de84335b..6bbdb1c76 100644
--- a/AltCover.Recorder/Tracer.fs
+++ b/AltCover.Recorder/Tracer.fs
@@ -2,15 +2,11 @@ namespace AltCover.Recorder
open System
open System.Collections.Generic
+open System.Diagnostics.CodeAnalysis
open System.IO
open System.IO.Compression
-open System.Threading
-#if NET2
-[]
-#else
-[]
-#endif
+[]
type internal Close =
| DomainUnload
| ProcessExit
@@ -38,12 +34,12 @@ type Tracer =
| null -> false
| _ -> this.Runner
- []
- []
+ []
member private this.MakeConnection f =
let fs = File.OpenWrite f
let s = new DeflateStream(fs, CompressionMode.Compress)
@@ -65,7 +61,9 @@ type Tracer =
try
this.Stream.Flush()
this.Formatter.Close()
- with :? ObjectDisposedException -> ()
+ with
+ | :? ObjectDisposedException
+ | :? NullReferenceException -> ()
member private this.PushContext context =
match context with
diff --git a/AltCover.Shadow/altcover.shadow.core.fsproj b/AltCover.Shadow/altcover.shadow.core.fsproj
deleted file mode 100644
index 32c205475..000000000
--- a/AltCover.Shadow/altcover.shadow.core.fsproj
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
- AltCover.Shadow
- netstandard2.0;net20
- AltCover.Recorder
- false
- $(ProjectDir)../
- $(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
- $(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- NET2
- --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
-
-
-
- TRACE;$(ExtraDefines)
-
-
-
- SHADOW;TRACE;DEBUG;CODE_ANALYSIS;$(ExtraDefines)
- 4
- 52
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResXFileCodeGenerator
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/AltCover.Toolkit/altcover.toolkit.core.fsproj b/AltCover.Toolkit/AltCover.Toolkit.fsproj
similarity index 78%
rename from AltCover.Toolkit/altcover.toolkit.core.fsproj
rename to AltCover.Toolkit/AltCover.Toolkit.fsproj
index 304bb9372..d44013c2d 100644
--- a/AltCover.Toolkit/altcover.toolkit.core.fsproj
+++ b/AltCover.Toolkit/AltCover.Toolkit.fsproj
@@ -1,7 +1,8 @@
- netstandard2.0;net45
+ netstandard2.0;net472
+ netstandard2.0
AltCover.Toolkit
AltCover.Toolkit
false
@@ -62,29 +63,19 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/AltCover.Toolkit/CoverageFormats.fs b/AltCover.Toolkit/CoverageFormats.fs
index 9ec43374a..ce9d690c2 100644
--- a/AltCover.Toolkit/CoverageFormats.fs
+++ b/AltCover.Toolkit/CoverageFormats.fs
@@ -94,16 +94,21 @@ module CoverageFormats =
let xpath =
".//SequencePoint[@sl='" + sl + "' and @sc='" + sc + "' and @el='" + el
+ "' and @ec='" + ec + "' and @fileid='" + uid + "']"
- let sp = Extensions.XPathSelectElement(target, xpath)
- let v = parse <| sp.Attribute(XName.Get "vc").Value
- let visits = (max 0 v) + (max 0 vc)
- sp.Attribute(XName.Get "vc").Value <- visits.ToString
- (System.Globalization.CultureInfo.InvariantCulture)))
-
- rewrite.Descendants(XName.Get "Class")
- |> Seq.filter (fun c -> c.Descendants(XName.Get "Method") |> Seq.isEmpty)
- |> Seq.toList // reify before making changes
- |> Seq.iter (fun c -> c.Remove())
+ xpath
+ |> target.XPathSelectElement
+ |> Option.ofObj
+ |> Option.iter (fun sp ->
+ let v = parse <| sp.Attribute(XName.Get "vc").Value
+ let visits = (max 0 v) + (max 0 vc)
+ sp.Attribute(XName.Get "vc").Value <- visits.ToString
+ (System.Globalization.CultureInfo.InvariantCulture))))
+
+ // This is done at generation time now
+ // There is no filtering done here
+ // rewrite.Descendants(XName.Get "Class")
+ // |> Seq.filter (fun c -> c.Descendants(XName.Get "Method") |> Seq.isEmpty)
+ // |> Seq.toList // reify before making changes
+ // |> Seq.iter (fun c -> c.Remove())
let dec = rewrite.Declaration
dec.Encoding <- "utf-8"
@@ -130,7 +135,7 @@ module CoverageFormats =
m.SetAttribute("class", c.Replace('/', '+'))
let name = m.Attribute(XName.Get "name").Value
let lead = name.Substring(name.LastIndexOf("::", StringComparison.Ordinal) + 2)
- m.SetAttribute("name", lead.Substring(0, lead.IndexOf('('))))
+ m.SetAttribute("name", lead.Substring(0, charIndexOf lead '(')))
rewrite.Descendants(XName.Get "module")
|> Seq.iter (fun m ->
diff --git a/AltCover.Toolkit/OpenCover.fs b/AltCover.Toolkit/OpenCover.fs
index 06239445a..45854b68f 100644
--- a/AltCover.Toolkit/OpenCover.fs
+++ b/AltCover.Toolkit/OpenCover.fs
@@ -173,12 +173,12 @@ module OpenCover =
// Fix offset, sc, ec in
let debugInfo = methodDef
|> Option.map (fun md -> md.DebugInformation)
- |> Option.filter (fun dbg -> dbg |> isNull |> not)
+ |> Option.filter (isNull >> not)
m.Descendants(XName.Get "MethodPoint")
|> Seq.tryHead
|> Option.iter (fun x -> let a = x.Attributes()
- |> Seq.filter (fun s -> s.Name.ToString().Contains("{") |> not)
+ |> Seq.filter (fun s -> charIndexOf (s.Name.ToString()) '{' < 0)
|> Seq.cast
|> Seq.toArray
x.RemoveAttributes()
diff --git a/AltCover.Toolkit/xsd/OpenCover.xsd b/AltCover.Toolkit/xsd/OpenCover.xsd
index bd906ea5b..dd88e15e5 100644
--- a/AltCover.Toolkit/xsd/OpenCover.xsd
+++ b/AltCover.Toolkit/xsd/OpenCover.xsd
@@ -177,6 +177,9 @@
+
+
+
diff --git a/AltCover.Toolkit/xsd/OpenCoverStrict.xsd b/AltCover.Toolkit/xsd/OpenCoverStrict.xsd
index 940681162..adba2674d 100644
--- a/AltCover.Toolkit/xsd/OpenCoverStrict.xsd
+++ b/AltCover.Toolkit/xsd/OpenCoverStrict.xsd
@@ -130,7 +130,8 @@
-
+
+
@@ -159,6 +160,9 @@
+
+
+
diff --git a/AltCover.UICommon/AltCover.UICommon.fsproj b/AltCover.UICommon/AltCover.UICommon.fsproj
index 0c67ce86d..712148d46 100644
--- a/AltCover.UICommon/AltCover.UICommon.fsproj
+++ b/AltCover.UICommon/AltCover.UICommon.fsproj
@@ -1,34 +1,31 @@
- netstandard2.0;net45
+ netstandard2.0;net472
+ netstandard2.0
AltCover.UICommon
AltCover.UICommon
false
- false
- AltCover.UICommon
true
true
true
-
- $(AssemblySearchPaths);{GAC}
-
GUI
$(ProjectDir)../
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
+ false
TRACE;DEBUG;CODE_ANALYSIS;$(GlobalDefineConstants)
- --tailcalls+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
4
true
+ true
TRACE;$(GlobalDefineConstants)
- --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
@@ -75,8 +72,8 @@
-
-
+
+
@@ -93,7 +90,6 @@
-
-
+
\ No newline at end of file
diff --git a/AltCover.UICommon/Configuration.fs b/AltCover.UICommon/Configuration.fs
index c07332f07..c4fe32939 100644
--- a/AltCover.UICommon/Configuration.fs
+++ b/AltCover.UICommon/Configuration.fs
@@ -3,6 +3,7 @@
#if NETSTANDARD2_0
open System
+open System.Diagnostics.CodeAnalysis
open System.IO
open System.Reflection
open System.Xml
@@ -10,6 +11,11 @@ open System.Xml.Linq
open System.Xml.Schema
open System.Xml.XPath
+[]
+()
+
module Configuration =
let private defaultDocument() =
@@ -17,11 +23,13 @@ module Configuration =
doc.Add(XElement(XName.Get "AltCover.Visualizer"))
doc
- []
+ []
let private ensureFile() =
let profileDir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
let dir = Directory.CreateDirectory(Path.Combine(profileDir, ".altcover"))
@@ -51,6 +59,8 @@ module Configuration =
printfn "%A" x
(file, defaultDocument())
+ []
let SaveSchemaDir (s : string) =
let file, config = ensureFile()
@@ -85,11 +95,13 @@ module Configuration =
let ReadFont() =
let _, config = ensureFile()
match config.XPathSelectElements("//Font") |> Seq.toList with
- | [] -> "Monospace 10"
+ | [] -> "Monospace Normal 10"
| x :: _ -> x.FirstNode.ToString()
+ []
let ReadSchemaDir() =
- let file, config = ensureFile()
+ let _, config = ensureFile()
let node =
config.XPathSelectElements("AltCover.Visualizer")
@@ -125,6 +137,8 @@ module Configuration =
|> Seq.iter (fun path -> inject.Add(XElement(XName.Get "RecentlyOpened", path)))
config.Save file
+ []
let ReadCoverageFiles sink =
let _, config = ensureFile()
@@ -134,6 +148,8 @@ module Configuration =
|> Seq.toList
|> sink
+ []
let SaveGeometry location size =
let file, config = ensureFile()
config.XPathSelectElements("//Geometry")
diff --git a/AltCover.UICommon/CoverageFileTree.fs b/AltCover.UICommon/CoverageFileTree.fs
index b2356a289..0c1bea61a 100644
--- a/AltCover.UICommon/CoverageFileTree.fs
+++ b/AltCover.UICommon/CoverageFileTree.fs
@@ -47,10 +47,10 @@ module CoverageFileTree =
let fullname = x.Navigator.GetAttribute("fullname", String.Empty)
let args =
- if String.IsNullOrEmpty(fullname) || x.Name.IndexOf('(') > 0 then
+ if String.IsNullOrEmpty(fullname) || charIndexOf x.Name '(' > 0 then
String.Empty
else
- let bracket = fullname.IndexOf('(')
+ let bracket = charIndexOf fullname '('
if bracket < 0 then String.Empty else fullname.Substring(bracket)
let displayname = x.Name + args
@@ -142,8 +142,11 @@ module CoverageFileTree =
|> Set.ofSeq
let modularize =
+ let contains (s:String) c =
+ s.IndexOf(c, StringComparison.Ordinal) >= 0
+
classnames
- |> Seq.filter (fun cn -> cn.Contains("+") || cn.Contains("/"))
+ |> Seq.filter (fun cn -> contains cn "+" || contains cn "/")
|> Seq.map
(fun cn -> cn.Split([| "+"; "/" |], StringSplitOptions.RemoveEmptyEntries).[0])
|> Seq.distinct
@@ -206,6 +209,8 @@ module CoverageFileTree =
methods |> Seq.iter (applyToModel model)
+ []
let DoSelected (environment:CoverageModelDisplay<'TModel, 'TRow, 'TIcon>) index =
let current = environment.GetFileInfo index
match CoverageFile.LoadCoverageFile current with
diff --git a/altcover.visualizer.core.sln b/AltCover.Visualizer.FuncUI.sln
similarity index 80%
rename from altcover.visualizer.core.sln
rename to AltCover.Visualizer.FuncUI.sln
index 1dc654006..a5a9dec9d 100644
--- a/altcover.visualizer.core.sln
+++ b/AltCover.Visualizer.FuncUI.sln
@@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29324.140
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.avalonia", "AltCover.Avalonia\altcover.avalonia.fsproj", "{48032486-334E-4D3A-B6B6-4E3165A33FBD}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Avalonia", "AltCover.Avalonia\AltCover.Avalonia.fsproj", "{48032486-334E-4D3A-B6B6-4E3165A33FBD}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Avalonia.FuncUI", "AltCover.Avalonia.FuncUI\AltCover.Avalonia.FuncUI.fsproj", "{15C2C311-8D52-422C-9C79-F31D91228DE8}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.visualizer.core", "AltCover.Visualizer\altcover.visualizer.core.fsproj", "{218DBE5A-CC62-4649-97BC-BC47EC5B4D32}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Visualizer", "AltCover.Visualizer\AltCover.Visualizer.fsproj", "{218DBE5A-CC62-4649-97BC-BC47EC5B4D32}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.visualizer.tests.core", "Tests.Visualizer\altcover.visualizer.tests.core.fsproj", "{93D327EE-100B-4837-A0CA-499ADEEADCD2}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Visualizer.Tests", "Tests.Visualizer\AltCover.Visualizer.Tests.fsproj", "{93D327EE-100B-4837-A0CA-499ADEEADCD2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items", "{97367D43-64EF-48E1-B6B4-D951C783E6E1}"
ProjectSection(SolutionItems) = preProject
@@ -40,7 +40,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-cli", "Build\dotnet-cli.csproj", "{1EF1ED60-3D8B-446C-BC70-397009F794DA}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AltCover.UICommon", "AltCover.UICommon\AltCover.UICommon.fsproj", "{D3383B16-5069-4E9C-9A86-920FA408E925}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.UICommon", "AltCover.UICommon\AltCover.UICommon.fsproj", "{D3383B16-5069-4E9C-9A86-920FA408E925}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AltCover.FontSupport", "AltCover.FontSupport\AltCover.FontSupport.csproj", "{660BB1CF-D777-4C8F-8145-84A6A497C91E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -69,6 +71,10 @@ Global
{D3383B16-5069-4E9C-9A86-920FA408E925}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3383B16-5069-4E9C-9A86-920FA408E925}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3383B16-5069-4E9C-9A86-920FA408E925}.Release|Any CPU.Build.0 = Release|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AltCover.Visualizer.sln b/AltCover.Visualizer.sln
new file mode 100644
index 000000000..8f8c6c391
--- /dev/null
+++ b/AltCover.Visualizer.sln
@@ -0,0 +1,82 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29324.140
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Avalonia", "AltCover.Avalonia\AltCover.Avalonia.fsproj", "{48032486-334E-4D3A-B6B6-4E3165A33FBD}"
+EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Visualizer", "AltCover.Visualizer\AltCover.Visualizer.fsproj", "{218DBE5A-CC62-4649-97BC-BC47EC5B4D32}"
+EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Visualizer.Tests", "Tests.Visualizer\AltCover.Visualizer.Tests.fsproj", "{93D327EE-100B-4837-A0CA-499ADEEADCD2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items", "{97367D43-64EF-48E1-B6B4-D951C783E6E1}"
+ ProjectSection(SolutionItems) = preProject
+ .travis.yml = .travis.yml
+ Build\actions.fsx = Build\actions.fsx
+ Build\AddStrongName.fsx = Build\AddStrongName.fsx
+ Build\AltCover.nuspec = Build\AltCover.nuspec
+ nupkg\build\netstandard2.0\AltCover.props = nupkg\build\netstandard2.0\AltCover.props
+ nupkg\build\netstandard2.0\AltCover.targets = nupkg\build\netstandard2.0\AltCover.targets
+ Build\Apply-Xslt.ps1 = Build\Apply-Xslt.ps1
+ appveyor.yml = appveyor.yml
+ Build\build.fsx = Build\build.fsx
+ Build\common-rules.xml = Build\common-rules.xml
+ .config\dotnet-tools.json = .config\dotnet-tools.json
+ Build\get-token.fsx = Build\get-token.fsx
+ global.json = global.json
+ Build\Infrastructure.snk = Build\Infrastructure.snk
+ Build\msbuildtest.proj = Build\msbuildtest.proj
+ Build\pester.ps1 = Build\pester.ps1
+ Build\Pester.Tests.ps1 = Build\Pester.Tests.ps1
+ Build\powershell.ps1 = Build\powershell.ps1
+ Build\Recorder.snk = Build\Recorder.snk
+ ReleaseNotes.md = ReleaseNotes.md
+ Build\SelfTest.snk = Build\SelfTest.snk
+ Build\setup.fsx = Build\setup.fsx
+ Build\targets.fsx = Build\targets.fsx
+ EndProjectSection
+EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.UICommon", "AltCover.UICommon\AltCover.UICommon.fsproj", "{D3383B16-5069-4E9C-9A86-920FA408E925}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AltCover.FontSupport", "AltCover.FontSupport\AltCover.FontSupport.csproj", "{660BB1CF-D777-4C8F-8145-84A6A497C91E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NuGet", "Build\NuGet.csproj", "{7E26A341-127C-4A51-A12B-E8D03F0B9BE5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {48032486-334E-4D3A-B6B6-4E3165A33FBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {48032486-334E-4D3A-B6B6-4E3165A33FBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {48032486-334E-4D3A-B6B6-4E3165A33FBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {48032486-334E-4D3A-B6B6-4E3165A33FBD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {218DBE5A-CC62-4649-97BC-BC47EC5B4D32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {218DBE5A-CC62-4649-97BC-BC47EC5B4D32}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {218DBE5A-CC62-4649-97BC-BC47EC5B4D32}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {218DBE5A-CC62-4649-97BC-BC47EC5B4D32}.Release|Any CPU.Build.0 = Release|Any CPU
+ {93D327EE-100B-4837-A0CA-499ADEEADCD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {93D327EE-100B-4837-A0CA-499ADEEADCD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {93D327EE-100B-4837-A0CA-499ADEEADCD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D3383B16-5069-4E9C-9A86-920FA408E925}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D3383B16-5069-4E9C-9A86-920FA408E925}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D3383B16-5069-4E9C-9A86-920FA408E925}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D3383B16-5069-4E9C-9A86-920FA408E925}.Release|Any CPU.Build.0 = Release|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {660BB1CF-D777-4C8F-8145-84A6A497C91E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7E26A341-127C-4A51-A12B-E8D03F0B9BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7E26A341-127C-4A51-A12B-E8D03F0B9BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {7E26A341-127C-4A51-A12B-E8D03F0B9BE5} = {97367D43-64EF-48E1-B6B4-D951C783E6E1}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6FB9BBB1-003A-4CBC-A45E-EC9A2CBEC828}
+ EndGlobalSection
+EndGlobal
diff --git a/AltCover.Visualizer/altcover.visualizer.core.fsproj b/AltCover.Visualizer/AltCover.Visualizer.fsproj
similarity index 82%
rename from AltCover.Visualizer/altcover.visualizer.core.fsproj
rename to AltCover.Visualizer/AltCover.Visualizer.fsproj
index a9e538913..4a13294db 100644
--- a/AltCover.Visualizer/altcover.visualizer.core.fsproj
+++ b/AltCover.Visualizer/AltCover.Visualizer.fsproj
@@ -2,11 +2,11 @@
WinExe
- net45;netcoreapp2.1
+ netcoreapp2.1;net472
AltCover.Visualizer
AltCover.Visualizer
false
- x86
+ x86
True
altcover.visualizer
AltCover.Visualizer
@@ -14,8 +14,8 @@
true
true
- $(AssemblySearchPaths);{GAC}
-
+ $(AssemblySearchPaths);{GAC}
+
GUI
$(ProjectDir)../
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
@@ -41,8 +41,8 @@
-
-
+
+
@@ -51,18 +51,18 @@
-
+
all
runtime; build; native; contentfiles; analyzers
-
-
+
+
..\ThirdParty\Mono.Options.dll
-
+
False
@@ -82,7 +82,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -93,8 +93,7 @@
-
-
+
diff --git a/altcover.core.sln b/AltCover.sln
similarity index 74%
rename from altcover.core.sln
rename to AltCover.sln
index fef4d0264..5530f0c52 100644
--- a/altcover.core.sln
+++ b/AltCover.sln
@@ -2,35 +2,33 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29209.62
MinimumVisualStudioVersion = 15.0.26124.0
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.core", "AltCover\altcover.core.fsproj", "{26C01B27-9A3E-4460-BB43-5383C8E818FB}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Engine", "AltCover.Engine\AltCover.Engine.fsproj", "{26C01B27-9A3E-4460-BB43-5383C8E818FB}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.powershell.core", "AltCover.PowerShell\altcover.powershell.core.fsproj", "{208B8925-5626-4E5D-A00B-6A993D850524}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.PowerShell", "AltCover.PowerShell\AltCover.PowerShell.fsproj", "{208B8925-5626-4E5D-A00B-6A993D850524}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "global-altcover.core", "AltCover.GlobalTool\global-altcover.core.fsproj", "{C6408656-6016-4F72-8897-63AA3FF4F3C0}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Toolkit", "AltCover.Toolkit\AltCover.Toolkit.fsproj", "{62218EAC-A2E9-462B-9DF6-96C79629CE63}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.toolkit.core", "AltCover.Toolkit\altcover.toolkit.core.fsproj", "{62218EAC-A2E9-462B-9DF6-96C79629CE63}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AltCover.Cake", "AltCover.Cake\AltCover.Cake.csproj", "{9BBD2D49-C8BD-4213-A97C-F5F3191ACCBD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "altcover.cake.core", "AltCover.Cake\altcover.cake.core.csproj", "{9BBD2D49-C8BD-4213-A97C-F5F3191ACCBD}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Fake", "AltCover.Fake\AltCover.Fake.fsproj", "{E59E33B2-F14C-498A-823C-5E573926EF30}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.fake.core", "AltCover.Fake\altcover.fake.core.fsproj", "{E59E33B2-F14C-498A-823C-5E573926EF30}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Tests", "Tests\AltCover.Tests.fsproj", "{440A79BE-7038-44EA-B683-3ED8EFAEC39C}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.tests.core", "Tests\altcover.tests.core.fsproj", "{440A79BE-7038-44EA-B683-3ED8EFAEC39C}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample1", "Sample1\Sample1.csproj", "{B2591DB3-481E-4A79-A849-AD6C6547BA7F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample1.core", "Sample1\sample1.core.csproj", "{B2591DB3-481E-4A79-A849-AD6C6547BA7F}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample2", "Sample2\Sample2.fsproj", "{FB3B5250-DF9C-478B-BAD4-1D28D89D437A}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample2.core", "Sample2\sample2.core.fsproj", "{FB3B5250-DF9C-478B-BAD4-1D28D89D437A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample3", "Sample3\Sample3.csproj", "{D4FE2C23-980A-46B0-8ECC-DD27FDF11C28}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample3.core", "Sample3\sample3.core.csproj", "{D4FE2C23-980A-46B0-8ECC-DD27FDF11C28}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample4", "Sample4\Sample4.fsproj", "{358265A1-C7B3-48E8-9707-2F344ECAAE9F}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample4.core", "Sample4\sample4.core.fsproj", "{358265A1-C7B3-48E8-9707-2F344ECAAE9F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample5", "Sample5\Sample5.csproj", "{8510ED92-510C-42D7-9E4D-85810B4DE86B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample5.core", "Sample5\sample5.core.csproj", "{8510ED92-510C-42D7-9E4D-85810B4DE86B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample6", "Sample6\Sample6.fsproj", "{54F49C6B-AF20-42E4-95A0-386296CB9125}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample6.core", "Sample6\sample6.core.fsproj", "{54F49C6B-AF20-42E4-95A0-386296CB9125}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample7", "Sample7\Sample7.fsproj", "{8E0DC7BC-C322-466C-8409-B69A12062AB6}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample7.core", "Sample7\sample7.core.fsproj", "{8E0DC7BC-C322-466C-8409-B69A12062AB6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample10.core", "Sample10\sample10.core.csproj", "{6D52273D-097D-4C30-82D1-5F276FAB4187}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample10", "Sample10\Sample10.csproj", "{6D52273D-097D-4C30-82D1-5F276FAB4187}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{2837CE07-B91F-4B8A-89B5-E7BE39A8F340}"
EndProject
@@ -46,6 +44,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items"
appveyor.yml = appveyor.yml
Build\build.fsx = Build\build.fsx
Build\common-rules.xml = Build\common-rules.xml
+ Build\coverletArgs.runsettings = Build\coverletArgs.runsettings
+ Build\coverletArgs.sample.runsettings = Build\coverletArgs.sample.runsettings
.config\dotnet-tools.json = .config\dotnet-tools.json
Build\get-token.fsx = Build\get-token.fsx
global.json = global.json
@@ -53,7 +53,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Items", "Build Items"
Build\msbuildtest.proj = Build\msbuildtest.proj
Build\pester.ps1 = Build\pester.ps1
Build\Pester.Tests.ps1 = Build\Pester.Tests.ps1
- Build\powershell.ps1 = Build\powershell.ps1
Build\prepareDocumentation.ps1 = Build\prepareDocumentation.ps1
Build\Recorder.snk = Build\Recorder.snk
ReleaseNotes.md = ReleaseNotes.md
@@ -68,33 +67,35 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documents", "Documents", "{
ReleaseNotes.md = ReleaseNotes.md
EndProjectSection
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.fake.dotnet.testing.altcover.core", "AltCover.Fake.DotNet.Testing.AltCover\altcover.fake.dotnet.testing.altcover.core.fsproj", "{D431AAE4-AD1F-4531-BFBD-A202868B328D}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Fake.DotNet.Testing.AltCover", "AltCover.Fake.DotNet.Testing.AltCover\AltCover.Fake.DotNet.Testing.AltCover.fsproj", "{D431AAE4-AD1F-4531-BFBD-A202868B328D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample11", "Sample11\Sample11.csproj", "{B206AF1F-A0F3-45F2-8751-383728CCED02}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample11.core", "Sample11\sample11.core.csproj", "{B206AF1F-A0F3-45F2-8751-383728CCED02}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample12", "Sample12\Sample12.csproj", "{8CCA1249-0561-43D5-9E60-AB284477B48F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample12.core", "Sample12\sample12.core.csproj", "{8CCA1249-0561-43D5-9E60-AB284477B48F}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample13", "Sample13\Sample13.fsproj", "{D588F8AA-50D3-455D-A070-04EAA48A2E93}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample13.core", "Sample13\sample13.core.fsproj", "{D588F8AA-50D3-455D-A070-04EAA48A2E93}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AltCover.DataCollector", "AltCover.DataCollector\AltCover.DataCollector.csproj", "{4AB7CAB3-2463-4289-9E34-B783070477AD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "altcover.datacollector.core", "altcover.datacollector\altcover.datacollector.core.csproj", "{4AB7CAB3-2463-4289-9E34-B783070477AD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample16", "Sample16\Sample16.csproj", "{792FD866-D256-4695-8C76-C14C49BB0207}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample16.core", "Sample16\sample16.core.csproj", "{792FD866-D256-4695-8C76-C14C49BB0207}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample17", "Sample17\Sample17.fsproj", "{5DB22786-389D-4193-AFDE-144FD59CF586}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample17.core", "Sample17\sample17.core.fsproj", "{5DB22786-389D-4193-AFDE-144FD59CF586}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NuGet", "Build\NuGet.csproj", "{AEFA8F43-5D00-4068-BC15-978041B17A00}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-cli", "Build\dotnet-cli.csproj", "{AEFA8F43-5D00-4068-BC15-978041B17A00}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.ValidateGendarmeEmulation", "ValidateGendarmeEmulation\AltCover.ValidateGendarmeEmulation.fsproj", "{3D639272-2787-47AA-9B83-1FE1686323D1}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.weaknametests.core", "WeakNameTests\altcover.weaknametests.core.fsproj", "{3D639272-2787-47AA-9B83-1FE1686323D1}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Sample18", "Sample18\Sample18.fsproj", "{8F488261-3FF5-4983-AE1E-17B151507552}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.netcoreapp.core", "AltCover.NetCoreApp\altcover.netcoreapp.core.fsproj", "{778014AA-1077-4C6F-B177-BEAAA2030B0B}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.Api.Tests", "AltCover.Api.Tests\AltCover.Api.Tests.fsproj", "{40FF8254-82F7-4875-A731-EB746B12F83B}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "sample18.core", "Sample18\sample18.core.fsproj", "{8F488261-3FF5-4983-AE1E-17B151507552}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover.DotNet", "AltCover.DotNet\AltCover.DotNet.fsproj", "{9CD47BC5-6C03-4BE5-ACD8-FC8F06942140}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.api.tests.core", "AltCover.Api.Tests\altcover.api.tests.core.fsproj", "{40FF8254-82F7-4875-A731-EB746B12F83B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample21", "Sample21\Sample21.csproj", "{978C8A9B-1470-4FD0-BA83-268B21599FFB}"
EndProject
-Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "altcover.dotnet.core", "AltCover.DotNet\altcover.dotnet.core.fsproj", "{9CD47BC5-6C03-4BE5-ACD8-FC8F06942140}"
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "AltCover", "AltCover\AltCover.fsproj", "{4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample21", "Sample21\Sample21.csproj", "{978C8A9B-1470-4FD0-BA83-268B21599FFB}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample23", "Sample23\Sample23.csproj", "{C5548F5A-AED5-45C5-8E27-71E38647B87D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -116,12 +117,6 @@ Global
{208B8925-5626-4E5D-A00B-6A993D850524}.Release|Any CPU.ActiveCfg = Release|Any CPU
{208B8925-5626-4E5D-A00B-6A993D850524}.Release|Any CPU.Build.0 = Release|Any CPU
{208B8925-5626-4E5D-A00B-6A993D850524}.Release|x86.ActiveCfg = Release|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {C6408656-6016-4F72-8897-63AA3FF4F3C0}.Release|x86.ActiveCfg = Release|Any CPU
{62218EAC-A2E9-462B-9DF6-96C79629CE63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{62218EAC-A2E9-462B-9DF6-96C79629CE63}.Debug|Any CPU.Build.0 = Debug|Any CPU
{62218EAC-A2E9-462B-9DF6-96C79629CE63}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -232,12 +227,6 @@ Global
{3D639272-2787-47AA-9B83-1FE1686323D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{3D639272-2787-47AA-9B83-1FE1686323D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3D639272-2787-47AA-9B83-1FE1686323D1}.Release|x86.ActiveCfg = Release|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Release|Any CPU.Build.0 = Release|Any CPU
- {778014AA-1077-4C6F-B177-BEAAA2030B0B}.Release|x86.ActiveCfg = Release|Any CPU
{8F488261-3FF5-4983-AE1E-17B151507552}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F488261-3FF5-4983-AE1E-17B151507552}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F488261-3FF5-4983-AE1E-17B151507552}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -257,11 +246,23 @@ Global
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Debug|x86.ActiveCfg = Debug|Any CPU
- {978C8A9B-1470-4FD0-BA83-268B21599FFB}.Debug|x86.Build.0 = Debug|Any CPU
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {978C8A9B-1470-4FD0-BA83-268B21599FFB}.Release|Any CPU.Build.0 = Release|Any CPU
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Release|x86.ActiveCfg = Release|Any CPU
{978C8A9B-1470-4FD0-BA83-268B21599FFB}.Release|x86.Build.0 = Release|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Release|x86.ActiveCfg = Release|Any CPU
+ {4DB2D351-2F9A-411A-B12E-46AB2EA9AFF1}.Release|x86.Build.0 = Release|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Debug|x86.Build.0 = Debug|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Release|x86.ActiveCfg = Release|Any CPU
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -283,6 +284,7 @@ Global
{AEFA8F43-5D00-4068-BC15-978041B17A00} = {97367D43-64EF-48E1-B6B4-D951C783E6E1}
{8F488261-3FF5-4983-AE1E-17B151507552} = {2837CE07-B91F-4B8A-89B5-E7BE39A8F340}
{978C8A9B-1470-4FD0-BA83-268B21599FFB} = {2837CE07-B91F-4B8A-89B5-E7BE39A8F340}
+ {C5548F5A-AED5-45C5-8E27-71E38647B87D} = {2837CE07-B91F-4B8A-89B5-E7BE39A8F340}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C31111CF-68A2-403F-9B06-9625FCBD48E3}
diff --git a/AltCover/AltCover.fsproj b/AltCover/AltCover.fsproj
new file mode 100644
index 000000000..af0397788
--- /dev/null
+++ b/AltCover/AltCover.fsproj
@@ -0,0 +1,70 @@
+
+
+
+ Exe
+ netcoreapp2.1;netcoreapp2.0;net472
+ altcover
+ True
+ AltCover
+ AltCover
+ false
+ true
+ true
+ true
+ AltCover.ico
+ $(ProjectDir)../
+
+ $(AssemblySearchPaths);{GAC}
+ $(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
+ $(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
+ $(OutputPath)\$(TargetFramework)\$(AssemblyName).xml
+ --keyfile:$(SolutionDir)Build\Infrastructure.snk
+
+
+
+ TRACE;DEBUG;CODE_ANALYSIS
+ TRACE;DEBUG;CODE_ANALYSIS;GLOBALTOOL
+ 4
+ true
+
+ 52
+ true
+
+
+ TRACE
+ TRACE;GLOBALTOOL
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AltCover.GlobalTool/DotnetToolSettings.xml b/AltCover/DotnetToolSettings.xml
similarity index 58%
rename from AltCover.GlobalTool/DotnetToolSettings.xml
rename to AltCover/DotnetToolSettings.xml
index f67c34170..f520e938a 100644
--- a/AltCover.GlobalTool/DotnetToolSettings.xml
+++ b/AltCover/DotnetToolSettings.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/AltCover/EntryPoint.fs b/AltCover/EntryPoint.fs
deleted file mode 100644
index a7fd3e3c9..000000000
--- a/AltCover/EntryPoint.fs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace AltCover
-
-module internal EntryPoint =
- let internal toConsole() =
- Output.error <- CommandLine.writeErr
- Output.usage <- CommandLine.usageBase
- Output.echo <- CommandLine.writeErr
- Output.info <- CommandLine.writeOut
- Output.warn <- CommandLine.writeOut
-
- []
- []
- let private main arguments =
- toConsole()
- AltCover.Main.effectiveMain arguments
\ No newline at end of file
diff --git a/AltCover.NetCoreApp/Program.fs b/AltCover/Program.fs
similarity index 68%
rename from AltCover.NetCoreApp/Program.fs
rename to AltCover/Program.fs
index 43594c9cc..4bcea1ffb 100644
--- a/AltCover.NetCoreApp/Program.fs
+++ b/AltCover/Program.fs
@@ -12,20 +12,18 @@ open AltCover.Main
[]
()
-module DotNetAltCover =
- let internal toConsole() =
- Output.error <- CommandLine.writeErr
- Output.usage <- CommandLine.usageBase
- Output.echo <- CommandLine.writeErr
- Output.info <- CommandLine.writeOut
+#if DEBUG
+[]
+type internal Marker =
+ DummyValueForReflectiveAccess = 0
+#endif
+module EntryPoint =
[]
- []
let private main arguments =
- toConsole()
+ CommandLine.toConsole()
let result =
#if GLOBALTOOL
let first =
diff --git a/Build/AddStrongName.fsx b/Build/AddStrongName.fsx
index b51e4382b..f6f62d5e6 100644
--- a/Build/AddStrongName.fsx
+++ b/Build/AddStrongName.fsx
@@ -45,7 +45,7 @@ let rest =
// The meat of the script starts here ---------------------------------
// load files
let stream = new FileStream(!keyName, FileMode.Open, FileAccess.Read)
-let key = new StrongNameKeyPair(stream)
+let key = StrongNameKeyPair(stream)
let definition = AssemblyDefinition.ReadAssembly(!assemblyName)
// Do what CorFlags /32BIT+ /Force does if required
diff --git a/Build/AltCover.Fake.DotNet.Testing.AltCover.md b/Build/AltCover.Fake.DotNet.Testing.AltCover.md
new file mode 100644
index 000000000..2ffe69f4d
--- /dev/null
+++ b/Build/AltCover.Fake.DotNet.Testing.AltCover.md
@@ -0,0 +1,46 @@
+# The AltCover.Fake package -- AltCover.Fake.DotNet.Testing.dll
+
+This provides helpers to drive command-line AltCover (or `dotnet test` with AltCover) from any of the other packages. In these scenarios, AltCover operates outside the Fake build process.
+The slightly awkward `AltCoverFake` namespace was chosen to allow co-existence with the previous in-process API's `AltCover.Fake` names.
+
+Requires Fake 5.18 or later
+
+## Composing the AltCover command line
+
+### Basic elements
+
+Start with one of these
+
+* [`module Abstract`](Abstract-fsapidoc) -- This holds the weakly ("stringly") typed equivalent of the command line options in a C# friendly manner as interfaces with the values expressed as read-only properties.
+* [`module Primitive`](Primitive-fsapidoc) -- This holds the weakly ("stringly") typed equivalent of the command line options.
+* [`module TypeSafe`](TypeSafe-fsapidoc) -- This holds the strongly-typed equivalent of the command line options.
+
+### The common expression of the command line elements
+
+Make one of these
+
+* [`module AltCover`](AltCover-fsapidoc) -- This represents the AltCover command line options and its validation.
+
+### Use with `dotnet test`
+
+* [`module DotNet`](DotNet-fsapidoc) -- This represents the further `dotnet test` command line options.
+* [`module Fake`](Fake-fsapidoc) -- This is the Fake toolkit integration via extension methods for type `Fake.DotNet.DotNet.TestOptions`.
+
+### Use as a command
+
+* [`module AltCoverCommand`](AltCoverCommand-fsapidoc) -- This represents the various `AltCover` operations available, and their execution from a Fake script.
+
+### Example
+(based on [the AltCover build script here](https://github.com/SteveGilham/altcover/blob/master/Build/targets.fsx#L984-L1004))
+
+```
+!!./docs/AltCover.Fake.DotNet.Testing.AltCover/BuildSample_1.fsx
+```
+
+### Example
+(based on [the AltCover build script here](https://github.com/SteveGilham/altcover/blob/master/Build/targets.fsx#L3578-L3591))
+
+```
+!!./docs/AltCover.Fake.DotNet.Testing.AltCover/BuildSample_2.fsx
+
+```
diff --git a/Build/Fake-and-Cake-integration.md b/Build/Fake-and-Cake-integration.md
new file mode 100644
index 000000000..3cc451021
--- /dev/null
+++ b/Build/Fake-and-Cake-integration.md
@@ -0,0 +1,22 @@
+# F# Fake and Cake integration v7.x
+
+APIs for use with build scripting tools are provided in the `AltCover.Cake.dll` and `AltCover.Fake.dll` assemblies, which are present in the `AltCover.Api` nuget package
+
+* [Fake integration](#fake-integration)
+* [Cake integration](#cake-integration)
+
+# Fake integration
+Found in `AltCover.Fake.dll`
+Detailed API documentation is [presented here](AltCover.Fake/Fake-fsapidoc).
+
+### Example
+Driving `dotnet test` in a Fake script (based on [the AltCover build script here](https://github.com/SteveGilham/altcover/blob/master/Build/targets.fsx#L3425-L3454))
+```
+!!./docs/BuildSample_1.fsx
+
+```
+
+# Cake integration
+
+Found in `AltCover.Cake.dll`
+Detailed API documentation is [presented here](AltCover.Cake/AltCover.Cake-apidoc).
\ No newline at end of file
diff --git a/Build/dotnet-cli.csproj b/Build/NuGet.csproj
similarity index 58%
rename from Build/dotnet-cli.csproj
rename to Build/NuGet.csproj
index 453ee5030..77407467a 100644
--- a/Build/dotnet-cli.csproj
+++ b/Build/NuGet.csproj
@@ -1,7 +1,7 @@
- net47
+ net472
@@ -9,16 +9,19 @@
-
+
+
all
runtime; build; native; contentfiles; analyzers
+
-
+
-
+
+
\ No newline at end of file
diff --git a/Build/Pester.Tests.ps1 b/Build/Pester.Tests.ps1
index 2471303d1..0e3bf9e16 100644
--- a/Build/Pester.Tests.ps1
+++ b/Build/Pester.Tests.ps1
@@ -68,7 +68,7 @@ Describe "Invoke-Altcover" {
#"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
$w | Should -Be "A total of 0 visits recorded"
- $summary = Invoke-AltCover -InformationAction Continue -Runner -RecorderDirectory $o -WorkingDirectory "./Sample2" -Executable "dotnet" -CommandLine @("test", "--no-build", "--configuration", "Debug", "--framework", "netcoreapp2.1", "sample2.core.fsproj")
+ $summary = Invoke-AltCover -InformationAction Continue -Runner -RecorderDirectory $o -WorkingDirectory "./Sample2" -Executable "dotnet" -CommandLine @("test", "--no-build", "--configuration", "Debug", "--framework", "netcoreapp2.1", "Sample2.fsproj")
$xm2 = [xml](Get-Content $x)
Remove-Item -Force -Recurse $o
$result = [string]::Join(" ", $xm2.coverage.module.method.seqpnt.visitcount)
diff --git a/Build/actions.fsx b/Build/actions.fsx
index ae25603ab..446826c4b 100644
--- a/Build/actions.fsx
+++ b/Build/actions.fsx
@@ -12,6 +12,7 @@ open Fake.IO.Globbing.Operators
open HeyRed.MarkdownSharp
open NUnit.Framework
+open Swensen.Unquote
open YamlDotNet.RepresentationModel
open AltCoverFake.DotNet.Testing
@@ -68,27 +69,14 @@ open System.Runtime.CompilerServices
#if DEBUG
[]
-#if NETSTANDARD2_0
-[]
-[]
-#else
-#if NETCOREAPP2_0
-[]
-[]
-[]
-#else
[]
[]
[]
[]
[]
[]
-[]
-[]
[]
[]
-#endif
-#endif
#else
[]
#endif
@@ -452,7 +440,10 @@ a:hover {color: #ecc;}
let coverageDocument = XDocument.Load(XmlReader.Create(coverageFile))
Check4Content coverageDocument
- let Check4Visits(coverageDocument : XDocument) =
+ let ticksNow () = let now = System.DateTime.UtcNow
+ now.Ticks
+
+ let Check4Visits before (coverageDocument : XDocument) =
let recorded =
coverageDocument.Descendants(XName.Get("SequencePoint"))
|> Seq.map (fun x -> x.Attribute(XName.Get("vc")).Value)
@@ -472,12 +463,24 @@ a:hover {color: #ecc;}
sp.Descendants(XName.Get("Time"))
|> Seq.sumBy (fun x -> x.Attribute(XName.Get("vc")).Value |> Int32.Parse)
Assert.That(vc, Is.EqualTo vx, sp.Value))
- let tracked = """
-
-
+ let trackedFormat = """
+
+
"""
coverageDocument.Descendants(XName.Get("TrackedMethods"))
|> Seq.iter (fun x ->
+ // entry and exit times need to be tested
+ let times = x.Descendants(XName.Get("TrackedMethod"))
+ |> Seq.map(fun m -> (m.Attribute(XName.Get("uid")).Value, m.Attribute(XName.Get("entry")).Value, m.Attribute(XName.Get("exit")).Value))
+ |> Seq.sortBy(fun (u,_ , _) -> Int32.Parse u)
+ |> Seq.collect(fun (_, entry, exit) -> let first = entry.TrimEnd('L') |> Int64.Parse
+ let second = exit.TrimEnd('L') |> Int64.Parse
+ test <@ before <= first @>
+ test <@ first <= second @>
+ test <@ second <= ticksNow() @>
+ [entry; exit])
+ |> Seq.toArray
+ let tracked = String.Format(trackedFormat, times.[0], times.[1], times.[2], times.[3])
Assert.That
(x.ToString().Replace("\r\n", "\n"),
Is.EqualTo <| tracked.Replace("\r\n", "\n")))
@@ -503,17 +506,17 @@ a:hover {color: #ecc;}
"" ])
printfn "TrackRefs OK"
- let CheckSample4Visits x =
+ let CheckSample4Visits before x =
do use coverageFile =
new FileStream(x, FileMode.Open, FileAccess.Read, FileShare.None, 4096,
FileOptions.SequentialScan)
let coverageDocument = XDocument.Load(XmlReader.Create(coverageFile))
- Check4Visits coverageDocument
+ Check4Visits before coverageDocument
- let CheckSample4 x =
+ let CheckSample4 before x =
do use coverageFile =
new FileStream(x, FileMode.Open, FileAccess.Read, FileShare.None, 4096,
FileOptions.SequentialScan)
let coverageDocument = XDocument.Load(XmlReader.Create(coverageFile))
Check4Content coverageDocument
- Check4Visits coverageDocument
\ No newline at end of file
+ Check4Visits before coverageDocument
\ No newline at end of file
diff --git a/Build/build.fsx.lock b/Build/build.fsx.lock
index aaa4b1923..72083d242 100644
--- a/Build/build.fsx.lock
+++ b/Build/build.fsx.lock
@@ -12,159 +12,162 @@ NUGET
BlackFox.VsWhere (1.1)
FSharp.Core (>= 4.2.3)
Microsoft.Win32.Registry (>= 4.7)
- Dotnet.ProjInfo (0.42.1)
+ Dotnet.ProjInfo (0.44)
FSharp.Core (>= 4.6.2)
Microsoft.NETFramework.ReferenceAssemblies (>= 1.0)
System.ValueTuple (>= 4.4)
- Dotnet.ProjInfo.Workspace (0.42.1)
- Dotnet.ProjInfo (>= 0.42.1)
+ Dotnet.ProjInfo.Workspace (0.44)
+ Dotnet.ProjInfo (>= 0.44)
FSharp.Core (>= 4.6.2)
Microsoft.NETFramework.ReferenceAssemblies (>= 1.0)
Sln (>= 0.3)
- Dotnet.ProjInfo.Workspace.FCS (0.42.1)
- Dotnet.ProjInfo.Workspace (>= 0.42.1)
- FSharp.Compiler.Service (>= 36.0.3)
+ Dotnet.ProjInfo.Workspace.FCS (0.44)
+ Dotnet.ProjInfo.Workspace (>= 0.44)
+ FSharp.Compiler.Service (>= 37.0)
FSharp.Core (>= 4.6.2)
Microsoft.NETFramework.ReferenceAssemblies (>= 1.0)
- Fake.Core.CommandLineParsing (5.20.1)
+ Fake.Core.CommandLineParsing (5.20.3)
FParsec (>= 1.1.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Context (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Environment (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.FakeVar (5.20.1)
- Fake.Core.Context (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Process (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- System.Collections.Immutable (>= 1.7)
- Fake.Core.SemVer (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.String (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Target (5.20.1)
- Fake.Core.CommandLineParsing (>= 5.20.1)
- Fake.Core.Context (>= 5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Control.Reactive (>= 4.2)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Tasks (5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Trace (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Xml (5.20.1)
- Fake.Core.String (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.AssemblyInfoFile (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.Cli (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.DotNet.MSBuild (>= 5.20.1)
- Fake.DotNet.NuGet (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Context (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Environment (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.FakeVar (5.20.3)
+ Fake.Core.Context (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Process (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ System.Collections.Immutable (>= 1.7.1)
+ Fake.Core.SemVer (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.String (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Target (5.20.3)
+ Fake.Core.CommandLineParsing (>= 5.20.3)
+ Fake.Core.Context (>= 5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Control.Reactive (>= 4.4.2)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Tasks (5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Trace (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Xml (5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.AssemblyInfoFile (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.Cli (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.DotNet.MSBuild (>= 5.20.3)
+ Fake.DotNet.NuGet (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
Mono.Posix.NETStandard (>= 1.0)
Newtonsoft.Json (>= 12.0.3)
- Fake.DotNet.FxCop (5.20.1)
- BlackFox.VsWhere (>= 1.0)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.Core.Xml (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.MSBuild (5.20.1)
- BlackFox.VsWhere (>= 1.0)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- MSBuild.StructuredLogger (>= 2.1.117)
- Fake.DotNet.NuGet (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.SemVer (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Tasks (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.Core.Xml (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- Fake.Net.Http (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ Fake.DotNet.FxCop (5.20.3)
+ BlackFox.VsWhere (>= 1.1)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.Core.Xml (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.MSBuild (5.20.3)
+ BlackFox.VsWhere (>= 1.1)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ MSBuild.StructuredLogger (>= 2.1.176)
+ Fake.DotNet.NuGet (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.SemVer (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Tasks (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.Core.Xml (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ Fake.Net.Http (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
Newtonsoft.Json (>= 12.0.3)
- NuGet.Protocol (>= 5.5.1)
- Fake.DotNet.Testing.Coverlet (5.20.1)
- Fake.DotNet.Cli (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.Testing.NUnit (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- Fake.Testing.Common (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.Testing.OpenCover (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.Testing.XUnit2 (5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- Fake.Testing.Common (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.IO.FileSystem (5.20.1)
- Fake.Core.String (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Net.Http (5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Testing.Common (5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Testing.ReportGenerator (5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.DotNet.Cli (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Tools.Git (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.SemVer (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ NuGet.Protocol (>= 5.6)
+ Fake.DotNet.Testing.Coverlet (5.20.3)
+ Fake.DotNet.Cli (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.Testing.NUnit (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ Fake.Testing.Common (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.Testing.OpenCover (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.Testing.XUnit2 (5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ Fake.Testing.Common (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.IO.FileSystem (5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Net.Http (5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Testing.Common (5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Testing.ReportGenerator (5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.DotNet.Cli (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Tools.Git (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.SemVer (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
FParsec (1.1.1)
FSharp.Core (>= 4.3.4)
- FSharp.Compiler.Service (36.0.3)
+ FSharp.Compiler.Service (37.0)
FSharp.Core (>= 4.6.2)
+ Microsoft.Build.Framework (>= 16.6)
+ Microsoft.Build.Tasks.Core (>= 16.6)
+ Microsoft.Build.Utilities.Core (>= 16.6)
System.Buffers (>= 4.5)
System.Collections.Immutable (>= 1.5)
System.Memory (>= 4.5.3)
@@ -172,11 +175,11 @@ NUGET
System.Reflection.Metadata (>= 1.6)
System.Reflection.TypeExtensions (>= 4.3)
System.Runtime.Loader (>= 4.0)
- FSharp.Control.Reactive (4.4)
- FSharp.Core (>= 4.7)
- System.Reactive (>= 4.3.2)
+ FSharp.Control.Reactive (4.4.2)
+ FSharp.Core (>= 4.7.2)
+ System.Reactive (>= 4.4.1)
FSharp.Core (4.7.2)
- FSharpLint.Core (0.16.3)
+ FSharpLint.Core (0.16.5)
Dotnet.ProjInfo (>= 0.41)
Dotnet.ProjInfo.Workspace (>= 0.41)
Dotnet.ProjInfo.Workspace.FCS (>= 0.41)
@@ -184,16 +187,18 @@ NUGET
FSharp.Compiler.Service (>= 36.0.1)
FSharp.Core (>= 4.6.2)
Newtonsoft.Json (>= 12.0.3)
+ Fuchu (1.1)
+ FSharp.Core (>= 4.3.4)
Markdown (2.2.1)
System.Collections (>= 4.0.11)
System.Runtime.Extensions (>= 4.1)
System.Text.RegularExpressions (>= 4.1)
- Microsoft.Build (16.6)
- Microsoft.Build.Framework (16.6)
+ Microsoft.Build (16.7)
+ Microsoft.Build.Framework (16.7)
System.Security.Permissions (>= 4.7)
- Microsoft.Build.Tasks.Core (16.6)
- Microsoft.Build.Framework (>= 16.6)
- Microsoft.Build.Utilities.Core (>= 16.6)
+ Microsoft.Build.Tasks.Core (16.7)
+ Microsoft.Build.Framework (>= 16.7)
+ Microsoft.Build.Utilities.Core (>= 16.7)
Microsoft.Win32.Registry (>= 4.3)
System.CodeDom (>= 4.4)
System.Collections.Immutable (>= 1.5)
@@ -202,15 +207,20 @@ NUGET
System.Resources.Extensions (>= 4.6)
System.Security.Permissions (>= 4.7)
System.Threading.Tasks.Dataflow (>= 4.9)
- Microsoft.Build.Utilities.Core (16.6)
- Microsoft.Build.Framework (>= 16.6)
+ Microsoft.Build.Tasks.Git (1.0)
+ Microsoft.Build.Utilities.Core (16.7)
+ Microsoft.Build.Framework (>= 16.7)
Microsoft.Win32.Registry (>= 4.3)
System.Collections.Immutable (>= 1.5)
System.Security.Permissions (>= 4.7)
System.Text.Encoding.CodePages (>= 4.0.1)
- Microsoft.NETCore.Platforms (3.1.1)
+ Microsoft.NETCore.Platforms (3.1.3)
Microsoft.NETCore.Targets (3.1)
Microsoft.NETFramework.ReferenceAssemblies (1.0)
+ Microsoft.SourceLink.Common (1.0)
+ Microsoft.SourceLink.GitHub (1.0)
+ Microsoft.Build.Tasks.Git (>= 1.0)
+ Microsoft.SourceLink.Common (>= 1.0)
Microsoft.Win32.Primitives (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -221,40 +231,39 @@ NUGET
System.Security.AccessControl (>= 4.7)
System.Security.Principal.Windows (>= 4.7)
Mono.Posix.NETStandard (1.0)
- MSBuild.StructuredLogger (2.1.133)
+ MSBuild.StructuredLogger (2.1.176)
Microsoft.Build (>= 16.4)
Microsoft.Build.Framework (>= 16.4)
Microsoft.Build.Tasks.Core (>= 16.4)
Microsoft.Build.Utilities.Core (>= 16.4)
- System.IO.Compression (>= 4.3)
+ Microsoft.SourceLink.GitHub (>= 1.0)
NETStandard.Library (2.0.3)
Microsoft.NETCore.Platforms (>= 1.1)
Newtonsoft.Json (12.0.3)
- NuGet.Common (5.6)
- NuGet.Frameworks (>= 5.6)
+ NuGet.Common (5.7)
+ NuGet.Frameworks (>= 5.7)
System.Diagnostics.Process (>= 4.3)
System.Threading.Thread (>= 4.3)
- NuGet.Configuration (5.6)
- NuGet.Common (>= 5.6)
+ NuGet.Configuration (5.7)
+ NuGet.Common (>= 5.7)
System.Security.Cryptography.ProtectedData (>= 4.3)
- NuGet.Frameworks (5.6)
- NuGet.Packaging (5.6)
+ NuGet.Frameworks (5.7)
+ NuGet.Packaging (5.7)
Newtonsoft.Json (>= 9.0.1)
- NuGet.Configuration (>= 5.6)
- NuGet.Versioning (>= 5.6)
+ NuGet.Configuration (>= 5.7)
+ NuGet.Versioning (>= 5.7)
System.Dynamic.Runtime (>= 4.3)
- NuGet.Protocol (5.6)
- NuGet.Packaging (>= 5.6)
+ System.Security.Cryptography.Cng (>= 5.0.0-preview.3.20214.6)
+ System.Security.Cryptography.Pkcs (>= 5.0.0-preview.3.20214.6)
+ NuGet.Protocol (5.7)
+ NuGet.Packaging (>= 5.7)
System.Dynamic.Runtime (>= 4.3)
- NuGet.Versioning (5.6)
+ NuGet.Versioning (5.7)
NUnit (3.12)
NETStandard.Library (>= 2.0)
runtime.native.System (4.3.1)
Microsoft.NETCore.Platforms (>= 1.1.1)
Microsoft.NETCore.Targets (>= 1.1.3)
- runtime.native.System.IO.Compression (4.3.2)
- Microsoft.NETCore.Platforms (>= 1.1.1)
- Microsoft.NETCore.Targets (>= 1.1.3)
Sln (0.3)
System.Buffers (4.5.1)
System.CodeDom (4.7)
@@ -305,6 +314,9 @@ NUGET
System.Runtime (>= 4.3)
System.Runtime.Extensions (>= 4.3)
System.Threading (>= 4.3)
+ System.Formats.Asn1 (5.0.0-preview.8.20407.11)
+ System.Buffers (>= 4.5.1)
+ System.Memory (>= 4.5.4)
System.Globalization (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -315,22 +327,6 @@ NUGET
System.Runtime (>= 4.3)
System.Text.Encoding (>= 4.3)
System.Threading.Tasks (>= 4.3)
- System.IO.Compression (4.3)
- Microsoft.NETCore.Platforms (>= 1.1)
- runtime.native.System (>= 4.3)
- runtime.native.System.IO.Compression (>= 4.3)
- System.Buffers (>= 4.3)
- System.Collections (>= 4.3)
- System.Diagnostics.Debug (>= 4.3)
- System.IO (>= 4.3)
- System.Resources.ResourceManager (>= 4.3)
- System.Runtime (>= 4.3)
- System.Runtime.Extensions (>= 4.3)
- System.Runtime.Handles (>= 4.3)
- System.Runtime.InteropServices (>= 4.3)
- System.Text.Encoding (>= 4.3)
- System.Threading (>= 4.3)
- System.Threading.Tasks (>= 4.3)
System.IO.FileSystem (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -438,6 +434,12 @@ NUGET
System.Runtime (>= 4.3)
System.Security.AccessControl (4.7)
System.Security.Principal.Windows (>= 4.7)
+ System.Security.Cryptography.Cng (5.0.0-preview.8.20407.11)
+ System.Security.Cryptography.Pkcs (5.0.0-preview.8.20407.11)
+ System.Buffers (>= 4.5.1)
+ System.Formats.Asn1 (>= 5.0.0-preview.8.20407.11)
+ System.Memory (>= 4.5.4)
+ System.Security.Cryptography.Cng (>= 5.0.0-preview.8.20407.11)
System.Security.Cryptography.ProtectedData (4.7)
System.Memory (>= 4.5.3)
System.Security.Permissions (4.7)
@@ -477,4 +479,6 @@ NUGET
System.Runtime (>= 4.3)
System.Runtime.Handles (>= 4.3)
System.ValueTuple (4.5)
+ Unquote (5.0)
+ FSharp.Core (>= 4.6.2)
YamlDotNet (8.1.2)
diff --git a/Build/common-rules.xml b/Build/common-rules.xml
index 3f0a4c3c7..2e0e38afd 100644
--- a/Build/common-rules.xml
+++ b/Build/common-rules.xml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/Build/coverletArgs.runsettings b/Build/coverletArgs.runsettings
index 931ce1446..ca62363da 100644
--- a/Build/coverletArgs.runsettings
+++ b/Build/coverletArgs.runsettings
@@ -4,8 +4,8 @@
- opencover
- [*]*Uncoverlet,[*.Tests]*,[*.XTests]*,[xunit*]*,[Sample*]*,[AltCover.Record*]M*,[NUnit*]*,[*]*Tests.*
+ opencover
+ [*]*Uncoverlet,[xunit*]*,[Sample*]*,[AltCover.Record*]M*,[NUnit*]*,[*]*UnitTestStub
CompilerGenerated
diff --git a/Build/coverletArgs.sample.runsettings b/Build/coverletArgs.sample.runsettings
index 29b06cf8c..4f01ac27a 100644
--- a/Build/coverletArgs.sample.runsettings
+++ b/Build/coverletArgs.sample.runsettings
@@ -4,8 +4,8 @@
- opencover
-
+ opencover
+ [AltCover.Recorder.g]*
diff --git a/Build/dump-uncovered.ps1 b/Build/dump-uncovered.ps1
new file mode 100644
index 000000000..bccf0ebe8
--- /dev/null
+++ b/Build/dump-uncovered.ps1
@@ -0,0 +1,17 @@
+$files = Get-ChildItem -recurse ./_Reports/_UnitTest*/*.html
+
+$files | % {
+ $file = $_.FullName
+ $lines = Get-Content $file
+ $mark = $false
+ $lines | ? {
+ ($_ -like '*class="coverableline"*') } | ? {
+ -not( ($_ -like '*class="orange"*') -or ($_ -like '*class="green"*')) } | % {
+ $mark = $true
+ Write-Host $_
+ }
+ if ($mark) {
+ Write-Host $file
+ Write-Host " "
+ }
+}
\ No newline at end of file
diff --git a/Build/get-token.fsx b/Build/get-token.fsx
index 06e99c208..adca936d1 100644
--- a/Build/get-token.fsx
+++ b/Build/get-token.fsx
@@ -5,7 +5,7 @@ open System.Security.Cryptography
let key = fsi.CommandLineArgs.[1]
let stream = new FileStream(key, System.IO.FileMode.Open, System.IO.FileAccess.Read)
-let pair = new StrongNameKeyPair(stream)
+let pair = StrongNameKeyPair(stream)
// get the public key token as 8 bytes from the end of a SHA1 hash of the key material
let hash = new SHA1CryptoServiceProvider()
diff --git a/Build/msbuildtest.proj b/Build/msbuildtest.proj
index e4ce47573..eda2c3025 100644
--- a/Build/msbuildtest.proj
+++ b/Build/msbuildtest.proj
@@ -1,8 +1,8 @@
+ AssemblyFile="$(MSBuildThisFileDirectory)../_Packaging/Unpack/tools/netcoreapp2.0/AltCover.Engine.dll" />
+ AssemblyFile="$(MSBuildThisFileDirectory)../_Packaging/Unpack/tools/netcoreapp2.0/AltCover.Engine.dll" />
@@ -12,21 +12,15 @@
-
-
+
-
-
-
-
-
+ AssemblyFilter="@(AssemblyFilter)" />
+
+
\ No newline at end of file
diff --git a/Build/paket.lock b/Build/paket.lock
index 0b1a93c53..a1216f80f 100644
--- a/Build/paket.lock
+++ b/Build/paket.lock
@@ -15,96 +15,98 @@ NUGET
FSharp.Core (>= 4.0.0.1) - restriction: >= net45
FSharp.Core (>= 4.2.3) - restriction: && (< net45) (>= netstandard2.0)
Microsoft.Win32.Registry (>= 4.7) - restriction: && (< net45) (>= netstandard2.0)
- Fake.Core.CommandLineParsing (5.20.1) - restriction: >= netstandard2.0
+ Fake.Core.CommandLineParsing (5.20.3) - restriction: >= netstandard2.0
FParsec (>= 1.1.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Context (5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Environment (5.20.1)
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.FakeVar (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Context (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Process (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.FakeVar (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.IO.FileSystem (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- System.Collections.Immutable (>= 1.7) - restriction: >= netstandard2.0
- Fake.Core.SemVer (5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.String (5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Target (5.20.1)
- Fake.Core.CommandLineParsing (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Context (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.FakeVar (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Process (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Control.Reactive (>= 4.2) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Tasks (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.FakeVar (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Core.Xml (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.DotNet.Cli (5.20.1)
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Process (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.DotNet.MSBuild (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.DotNet.NuGet (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.IO.FileSystem (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Context (5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Environment (5.20.3)
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.FakeVar (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Context (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Process (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.FakeVar (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.IO.FileSystem (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ System.Collections.Immutable (>= 1.7.1) - restriction: >= netstandard2.0
+ Fake.Core.SemVer (5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.String (5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Target (5.20.3)
+ Fake.Core.CommandLineParsing (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Context (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.FakeVar (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Process (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Control.Reactive (>= 4.4.2) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Tasks (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Trace (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.FakeVar (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Core.Xml (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.DotNet.Cli (5.20.3)
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Process (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.DotNet.MSBuild (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.DotNet.NuGet (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.IO.FileSystem (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
Mono.Posix.NETStandard (>= 1.0) - restriction: >= netstandard2.0
Newtonsoft.Json (>= 12.0.3) - restriction: >= netstandard2.0
- Fake.DotNet.MSBuild (5.20.1) - restriction: >= netstandard2.0
- BlackFox.VsWhere (>= 1.0) - restriction: >= netstandard2.0
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Process (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.IO.FileSystem (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- MSBuild.StructuredLogger (>= 2.1.117) - restriction: >= netstandard2.0
- Fake.DotNet.NuGet (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Environment (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Process (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.SemVer (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Tasks (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Xml (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.IO.FileSystem (>= 5.20.1) - restriction: >= netstandard2.0
- Fake.Net.Http (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
+ Fake.DotNet.MSBuild (5.20.3) - restriction: >= netstandard2.0
+ BlackFox.VsWhere (>= 1.1) - restriction: >= netstandard2.0
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Process (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.IO.FileSystem (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ MSBuild.StructuredLogger (>= 2.1.176) - restriction: >= netstandard2.0
+ Fake.DotNet.NuGet (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Environment (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Process (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.SemVer (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Tasks (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Xml (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.IO.FileSystem (>= 5.20.3) - restriction: >= netstandard2.0
+ Fake.Net.Http (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
Newtonsoft.Json (>= 12.0.3) - restriction: >= netstandard2.0
- NuGet.Protocol (>= 5.5.1) - restriction: >= netstandard2.0
- Fake.IO.FileSystem (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.String (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
- Fake.Net.Http (5.20.1) - restriction: >= netstandard2.0
- Fake.Core.Trace (>= 5.20.1) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7.1) - restriction: >= netstandard2.0
+ NuGet.Protocol (>= 5.6) - restriction: >= netstandard2.0
+ Fake.IO.FileSystem (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.String (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
+ Fake.Net.Http (5.20.3) - restriction: >= netstandard2.0
+ Fake.Core.Trace (>= 5.20.3) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0
FParsec (1.1.1) - restriction: >= netstandard2.0
FSharp.Core (>= 4.3.4) - restriction: || (>= net45) (>= netstandard2.0)
System.ValueTuple (>= 4.4) - restriction: >= net45
- FSharp.Control.Reactive (4.4) - restriction: >= netstandard2.0
- FSharp.Core (>= 4.7) - restriction: || (>= net46) (>= netstandard2.0)
- System.Reactive (>= 4.3.2) - restriction: || (>= net46) (>= netstandard2.0)
+ FSharp.Control.Reactive (4.4.2) - restriction: >= netstandard2.0
+ FSharp.Core (>= 4.7.2) - restriction: || (>= net46) (>= netstandard2.0)
+ System.Reactive (>= 4.4.1) - restriction: || (>= net46) (>= netstandard2.0)
FSharp.Core (4.7.2)
- Microsoft.Build (16.6) - restriction: >= netstandard2.0
- Microsoft.Build.Framework (>= 16.6) - restriction: || (>= net472) (>= netcoreapp2.1)
+ Microsoft.Bcl.AsyncInterfaces (1.1.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos))
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (>= net461) (&& (< netcoreapp2.1) (>= netstandard2.0)) (>= netstandard2.1)
+ Microsoft.Build (16.7) - restriction: >= netstandard2.0
+ Microsoft.Build.Framework (>= 16.7) - restriction: || (>= net472) (>= netcoreapp2.1)
Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472
Microsoft.Win32.Registry (>= 4.3) - restriction: >= netcoreapp2.1
System.Collections.Immutable (>= 1.5) - restriction: || (>= net472) (>= netcoreapp2.1)
@@ -112,12 +114,13 @@ NUGET
System.Reflection.Metadata (>= 1.6) - restriction: >= netcoreapp2.1
System.Security.Principal.Windows (>= 4.7) - restriction: >= netcoreapp2.1
System.Text.Encoding.CodePages (>= 4.0.1) - restriction: >= netcoreapp2.1
+ System.Text.Json (>= 4.7) - restriction: || (>= net472) (>= netcoreapp2.1)
System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (>= net472) (>= netcoreapp2.1)
- Microsoft.Build.Framework (16.6) - restriction: >= netstandard2.0
+ Microsoft.Build.Framework (16.7) - restriction: >= netstandard2.0
System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0)
- Microsoft.Build.Tasks.Core (16.6) - restriction: >= netstandard2.0
- Microsoft.Build.Framework (>= 16.6) - restriction: >= netstandard2.0
- Microsoft.Build.Utilities.Core (>= 16.6) - restriction: >= netstandard2.0
+ Microsoft.Build.Tasks.Core (16.7) - restriction: >= netstandard2.0
+ Microsoft.Build.Framework (>= 16.7) - restriction: >= netstandard2.0
+ Microsoft.Build.Utilities.Core (>= 16.7) - restriction: >= netstandard2.0
Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472
Microsoft.Win32.Registry (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
System.CodeDom (>= 4.4) - restriction: && (< net472) (>= netstandard2.0)
@@ -127,15 +130,20 @@ NUGET
System.Resources.Extensions (>= 4.6) - restriction: >= netstandard2.0
System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0)
System.Threading.Tasks.Dataflow (>= 4.9) - restriction: >= netstandard2.0
- Microsoft.Build.Utilities.Core (16.6) - restriction: >= netstandard2.0
- Microsoft.Build.Framework (>= 16.6) - restriction: >= netstandard2.0
+ Microsoft.Build.Tasks.Git (1.0) - restriction: >= netstandard2.0
+ Microsoft.Build.Utilities.Core (16.7) - restriction: >= netstandard2.0
+ Microsoft.Build.Framework (>= 16.7) - restriction: >= netstandard2.0
Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472
Microsoft.Win32.Registry (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
System.Collections.Immutable (>= 1.5) - restriction: >= netstandard2.0
System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0)
System.Text.Encoding.CodePages (>= 4.0.1) - restriction: && (< net472) (>= netstandard2.0)
- Microsoft.NETCore.Platforms (3.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp2.0) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
- Microsoft.NETCore.Targets (3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.5)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ Microsoft.NETCore.Platforms (3.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netcoreapp1.1) (>= uap10.1)) (>= netcoreapp2.0) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netcoreapp5.0) (>= uap10.1)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ Microsoft.NETCore.Targets (3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netcoreapp1.1) (>= uap10.1)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netcoreapp5.0) (>= uap10.1)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ Microsoft.SourceLink.Common (1.0) - restriction: >= netstandard2.0
+ Microsoft.SourceLink.GitHub (1.0) - restriction: >= netstandard2.0
+ Microsoft.Build.Tasks.Git (>= 1.0)
+ Microsoft.SourceLink.Common (>= 1.0)
Microsoft.VisualStudio.Setup.Configuration.Interop (1.16.30) - restriction: >= net472
Microsoft.Win32.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
@@ -149,12 +157,12 @@ NUGET
Microsoft.Win32.SystemEvents (4.7) - restriction: >= netcoreapp3.0
Microsoft.NETCore.Platforms (>= 3.1) - restriction: >= netcoreapp2.0
Mono.Posix.NETStandard (1.0) - restriction: >= netstandard2.0
- MSBuild.StructuredLogger (2.1.133) - restriction: >= netstandard2.0
+ MSBuild.StructuredLogger (2.1.176) - restriction: >= netstandard2.0
Microsoft.Build (>= 16.4) - restriction: >= netstandard2.0
Microsoft.Build.Framework (>= 16.4) - restriction: >= netstandard2.0
Microsoft.Build.Tasks.Core (>= 16.4) - restriction: >= netstandard2.0
Microsoft.Build.Utilities.Core (>= 16.4) - restriction: >= netstandard2.0
- System.IO.Compression (>= 4.3) - restriction: >= netstandard2.0
+ Microsoft.SourceLink.GitHub (>= 1.0) - restriction: >= netstandard2.0
NETStandard.Library (2.0.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (>= net45) (< netstandard1.3)) (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (< net45) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4)) (>= net461) (>= netcoreapp2.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8) (< win8)) (&& (< netstandard1.0) (< portable-net45+win8) (>= portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< portable-net45+win8+wpa81)) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard1.3) (< win8) (>= wpa81)) (&& (< netstandard1.5) (>= uap10.0)) (>= uap10.1) (>= wp8)
Microsoft.Win32.Primitives (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.4)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1))
@@ -201,14 +209,14 @@ NUGET
System.Xml.ReaderWriter (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= net46) (< netstandard1.4)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1))
System.Xml.XDocument (>= 4.3) - restriction: || (&& (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.5) (>= uap10.0) (< uap10.1))
Newtonsoft.Json (12.0.3) - restriction: >= netstandard2.0
- NuGet.Common (5.6) - restriction: >= netstandard2.0
- NuGet.Frameworks (>= 5.6) - restriction: >= netstandard2.0
+ NuGet.Common (5.7) - restriction: >= netstandard2.0
+ NuGet.Frameworks (>= 5.7) - restriction: >= netstandard2.0
System.Diagnostics.Process (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
System.Threading.Thread (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
- NuGet.Configuration (5.6) - restriction: >= netstandard2.0
- NuGet.Common (>= 5.6) - restriction: >= netstandard2.0
+ NuGet.Configuration (5.7) - restriction: >= netstandard2.0
+ NuGet.Common (>= 5.7) - restriction: >= netstandard2.0
System.Security.Cryptography.ProtectedData (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
- NuGet.Frameworks (5.6) - restriction: >= netstandard2.0
+ NuGet.Frameworks (5.7) - restriction: >= netstandard2.0
NuGet.Packaging (5.6) - restriction: >= netstandard2.0
Newtonsoft.Json (>= 9.0.1) - restriction: >= netstandard2.0
NuGet.Configuration (>= 5.6) - restriction: >= netstandard2.0
@@ -217,25 +225,25 @@ NUGET
NuGet.Protocol (5.6) - restriction: >= netstandard2.0
NuGet.Packaging (>= 5.6) - restriction: >= netstandard2.0
System.Dynamic.Runtime (>= 4.3) - restriction: && (< net472) (>= netstandard2.0)
- NuGet.Versioning (5.6) - restriction: >= netstandard2.0
- runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.native.System (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp5.0) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ NuGet.Versioning (5.7) - restriction: >= netstandard2.0
+ runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.native.System (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1.1)
Microsoft.NETCore.Targets (>= 1.1.3)
- runtime.native.System.IO.Compression (4.3.2) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0)
+ runtime.native.System.IO.Compression (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1.1)
Microsoft.NETCore.Targets (>= 1.1.3)
- runtime.native.System.Net.Http (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.native.System.Net.Http (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1.1)
Microsoft.NETCore.Targets (>= 1.1.3)
runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1)
- runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
@@ -251,26 +259,26 @@ NUGET
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3)
- runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
- runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
System.AppContext (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.6)) (>= netcoreapp5.0)
- System.Buffers (4.5.1) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monoandroid) (>= uap10.1)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net46)) (&& (>= monotouch) (>= netstandard2.0)) (&& (>= monotouch) (>= uap10.1)) (&& (>= net45) (>= uap10.1)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< netstandard2.0)) (&& (>= net46) (>= xamarintvos)) (&& (>= net46) (>= xamarinwatchos)) (>= net461) (>= netcoreapp5.0) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.1) (>= uap10.1)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (&& (>= uap10.1) (< win8) (< wpa81)) (&& (>= uap10.1) (>= xamarintvos)) (&& (>= uap10.1) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac)
+ System.Buffers (4.5.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monoandroid) (>= uap10.1)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net46)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netstandard2.0)) (&& (>= monotouch) (>= uap10.1)) (&& (>= net45) (>= uap10.1)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< netstandard2.0)) (&& (>= net46) (>= xamarintvos)) (&& (>= net46) (>= xamarinwatchos)) (>= net461) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.1) (>= uap10.1)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (&& (>= uap10.1) (< win8) (< wpa81)) (&& (>= uap10.1) (>= xamarintvos)) (&& (>= uap10.1) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac)
System.Diagnostics.Debug (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)
System.Diagnostics.Tracing (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)
System.Resources.ResourceManager (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)
System.Runtime (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)
System.Threading (>= 4.3) - restriction: && (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)
System.CodeDom (4.7) - restriction: && (< net472) (>= netstandard2.0)
- System.Collections (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Collections (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
@@ -297,7 +305,7 @@ NUGET
System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Diagnostics.Contracts (4.3) - restriction: >= netcoreapp5.0
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Diagnostics.Debug (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Diagnostics.Debug (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
@@ -346,7 +354,7 @@ NUGET
System.Drawing.Common (4.7) - restriction: >= netcoreapp3.0
Microsoft.NETCore.Platforms (>= 3.1) - restriction: >= netcoreapp2.0
Microsoft.Win32.SystemEvents (>= 4.7) - restriction: >= netcoreapp2.0
- System.Dynamic.Runtime (4.3) - restriction: || (&& (< net472) (>= netstandard2.0)) (&& (>= netstandard2.0) (>= uap10.0))
+ System.Dynamic.Runtime (4.3) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard2.0) (>= uap10.0))
System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Globalization (>= 4.3) - restriction: >= netcoreapp5.0
@@ -362,7 +370,7 @@ NUGET
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
@@ -378,13 +386,13 @@ NUGET
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.IO (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.IO (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
- System.IO.Compression (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (>= netstandard2.0)
+ System.IO.Compression (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net45) (< netcoreapp5.0) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
runtime.native.System (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (< netcoreapp5.0) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
runtime.native.System.IO.Compression (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
@@ -410,7 +418,7 @@ NUGET
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Runtime.Extensions (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.IO.FileSystem (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.IO.FileSystem (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
@@ -421,13 +429,13 @@ NUGET
System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.IO.FileSystem.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.Linq (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Linq (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Linq.Expressions (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Linq.Expressions (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
@@ -446,7 +454,7 @@ NUGET
System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Linq.Queryable (4.3) - restriction: && (>= netstandard2.0) (>= uap10.0)
- System.Memory (4.5.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= net45) (< netstandard1.3) (>= uap10.0)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (>= netstandard1.4) (< netstandard1.5)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.5) (>= netstandard1.6)) (&& (>= net46) (< netstandard1.3) (>= uap10.0)) (&& (>= net46) (< netstandard1.5) (>= uap10.0)) (&& (>= net46) (< netstandard2.0)) (>= net461) (>= netcoreapp2.0) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (>= uap10.1)
+ System.Memory (4.5.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.6) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= net45) (< netstandard1.3) (>= uap10.0)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (>= netstandard1.4) (< netstandard1.5)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.5) (>= netstandard1.6)) (&& (>= net46) (< netstandard1.3) (>= uap10.0)) (&& (>= net46) (< netstandard1.5) (>= uap10.0)) (&& (>= net46) (< netstandard2.0)) (>= net461) (>= netcoreapp2.0) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (>= uap10.1)
System.Buffers (>= 4.5.1) - restriction: || (>= monoandroid) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos)
System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)
System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)
@@ -499,8 +507,8 @@ NUGET
System.Net.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.Numerics.Vectors (4.5) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netstandard2.0) (>= uap10.1))
- System.ObjectModel (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Numerics.Vectors (4.5) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netstandard2.0) (>= uap10.1))
+ System.ObjectModel (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
@@ -513,15 +521,15 @@ NUGET
System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - restriction: && (< net46) (< netcoreapp3.0) (>= netstandard2.0) (< uap10.0)
System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (>= net46) (&& (< netcoreapp3.0) (>= netstandard2.0)) (>= uap10.0)
System.ValueTuple (>= 4.5) - restriction: || (>= net46) (&& (>= uap10.0) (< uap10.1))
- System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard2.0)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netcoreapp1.1) (>= uap10.1)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
- System.Reflection.Emit (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp5.0) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Reflection.Emit (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp5.0) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (>= netcoreapp5.0) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1)
- System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netcoreapp5.0) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netcoreapp5.0) (< portable-net45+wp8)) (&& (>= netcoreapp5.0) (>= uap10.1)) (&& (< netstandard1.2) (>= netstandard1.6) (>= uap10.1) (< win8)) (&& (< netstandard1.2) (>= netstandard1.6) (< win8) (>= wpa81)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.3) (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+wp8) (< win8)) (&& (>= netstandard1.6) (>= uap10.1) (< win8) (< wpa81)) (&& (>= netstandard2.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.1) (< win8) (< wpa81))
+ System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netcoreapp5.0) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netcoreapp5.0) (< portable-net45+wp8)) (&& (>= netcoreapp5.0) (>= uap10.0)) (&& (>= netcoreapp5.0) (>= uap10.1)) (&& (< netstandard1.1) (>= netstandard2.0) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= netstandard1.6) (>= uap10.1) (< win8)) (&& (< netstandard1.2) (>= netstandard1.6) (< win8) (>= wpa81)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.6) (< portable-net45+wp8) (< win8)) (&& (>= netstandard1.6) (>= uap10.1) (< win8) (< wpa81)) (&& (>= netstandard2.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.1) (< win8) (< wpa81))
System.Reflection.Emit.Lightweight (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (>= netcoreapp5.0) (&& (< netstandard2.0) (>= wpa81)) (&& (>= portable-net45+win8+wp8+wpa81) (< portable-net45+wp8) (< win8)) (&& (< portable-net45+wp8) (>= win8)) (>= uap10.1)
@@ -535,11 +543,11 @@ NUGET
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Reflection.Metadata (1.8.1) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.1)
System.Collections.Immutable (>= 1.7.1) - restriction: || (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp3.1) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81))
- System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (>= netstandard1.5) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netcoreapp1.1) (>= uap10.1)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Reflection.TypeExtensions (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net472) (>= netstandard2.0)) (>= netcoreapp5.0) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81))
+ System.Reflection.TypeExtensions (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< net472) (>= netstandard2.0)) (>= netcoreapp5.0) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Diagnostics.Contracts (>= 4.3) - restriction: >= netcoreapp5.0
System.Diagnostics.Debug (>= 4.3) - restriction: >= netcoreapp5.0
System.Linq (>= 4.3) - restriction: >= netcoreapp5.0
@@ -550,26 +558,26 @@ NUGET
System.Runtime.Extensions (>= 4.3) - restriction: >= netcoreapp5.0
System.Resources.Extensions (4.7.1) - restriction: >= netstandard2.0
System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461)
- System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.2) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.6) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.1) (< portable-net45+win8+wpa81)) (&& (< netstandard1.1) (>= uap10.0) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.4) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.5) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.2)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.5)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard1.2)) (&& (< net45) (>= net461) (< netstandard1.3)) (&& (< net45) (>= net461) (< netstandard1.5)) (&& (< net45) (>= net461) (< netstandard2.0)) (&& (< net45) (>= net462) (< netstandard1.2)) (&& (< net45) (>= net462) (< netstandard1.3)) (&& (< net45) (>= net462) (< netstandard1.4)) (&& (< net45) (>= net462) (< netstandard1.5)) (&& (< net45) (>= net462) (< netstandard1.6)) (&& (< net45) (>= net462) (< netstandard2.0)) (&& (>= net462) (< netstandard1.3) (>= uap10.0)) (&& (>= net462) (< netstandard1.5) (>= uap10.0)) (&& (>= net462) (>= uap10.1)) (&& (>= netcoreapp1.1) (< netstandard1.2)) (&& (>= netcoreapp1.1) (< netstandard1.3)) (&& (>= netcoreapp1.1) (< netstandard1.4)) (&& (>= netcoreapp1.1) (< netstandard1.5)) (&& (>= netcoreapp1.1) (< netstandard1.6)) (&& (>= netcoreapp1.1) (< netstandard2.0)) (&& (>= netcoreapp1.1) (>= uap10.1)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.2) (>= uap10.0) (< win8)) (&& (< netstandard1.2) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.4) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.5) (< portable-net45+win8+wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
- System.Runtime.CompilerServices.Unsafe (4.7.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net46)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.0) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< netstandard2.0)) (&& (>= net46) (>= xamarintvos)) (&& (>= net46) (>= xamarinwatchos)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (>= netcoreapp2.0) (< netstandard2.0)) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.1)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) (&& (>= netstandard2.0) (>= uap10.0)) (&& (>= netstandard2.0) (>= wp8)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (&& (< netstandard2.0) (>= xamarinios)) (&& (< netstandard2.0) (>= xamarinmac)) (>= uap10.1)
+ System.Runtime.CompilerServices.Unsafe (4.7.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net46)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (>= net46) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.0) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (< netstandard2.0)) (&& (>= net46) (>= xamarintvos)) (&& (>= net46) (>= xamarinwatchos)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (>= netcoreapp2.0) (< netstandard2.0)) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netcoreapp3.0) (< netcoreapp3.1)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (< netstandard1.1) (>= netstandard2.0) (>= win8)) (&& (>= netstandard2.0) (>= uap10.0)) (&& (>= netstandard2.0) (>= wp8)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (&& (< netstandard2.0) (>= xamarinios)) (&& (< netstandard2.0) (>= xamarinmac)) (>= uap10.1)
System.Runtime (>= 4.3) - restriction: && (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wp8) (< wpa81)
- System.Runtime.Extensions (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Runtime.Extensions (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0)
- System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (>= netcoreapp5.0) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.Runtime.InteropServices (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (>= netcoreapp5.0) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
+ System.Runtime.InteropServices (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= uap10.1) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1)
System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1)
@@ -586,7 +594,7 @@ NUGET
System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.1) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime.InteropServices.WindowsRuntime (4.3) - restriction: && (< net46) (< netcoreapp3.0) (>= netstandard2.0) (< uap10.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Runtime.Numerics (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Runtime.Numerics (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.3) (< win8) (< wpa81)) (>= netcoreapp5.0)
@@ -647,7 +655,7 @@ NUGET
System.Runtime.InteropServices (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Text.Encoding (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
- System.Security.Cryptography.OpenSsl (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
+ System.Security.Cryptography.OpenSsl (4.7) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3) (>= netstandard1.6)) (&& (< net45) (>= net46) (< netstandard1.4) (>= netstandard1.6)) (&& (< netstandard1.3) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= netstandard1.6) (>= uap10.0) (< win8) (< wpa81))
System.Collections (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
System.IO (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
System.Resources.ResourceManager (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
@@ -660,7 +668,7 @@ NUGET
System.Security.Cryptography.Encoding (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
System.Security.Cryptography.Primitives (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
System.Text.Encoding (>= 4.3) - restriction: && (>= netstandard1.6) (< netstandard2.0)
- System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
System.Diagnostics.Debug (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Globalization (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.IO (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
@@ -670,7 +678,7 @@ NUGET
System.Threading.Tasks (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
System.Security.Cryptography.ProtectedData (4.7) - restriction: && (< net472) (>= netstandard2.0)
System.Memory (>= 4.5.3) - restriction: && (< monoandroid) (< net46) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)
- System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
runtime.native.System (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (< netcoreapp5.0) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
runtime.native.System.Net.Http (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (< netcoreapp5.0) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
@@ -701,7 +709,7 @@ NUGET
System.Windows.Extensions (>= 4.7) - restriction: >= netcoreapp3.0
System.Security.Principal.Windows (4.7) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac)
Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0))
- System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
@@ -713,6 +721,17 @@ NUGET
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
+ System.Text.Encodings.Web (4.7.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netcoreapp3.0) (< netcoreapp3.1))
+ System.Memory (>= 4.5.4) - restriction: || (&& (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) (>= net461) (>= uap10.1)
+ System.Text.Json (4.7.2) - restriction: || (>= net472) (>= netcoreapp2.1)
+ Microsoft.Bcl.AsyncInterfaces (>= 1.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos)
+ System.Buffers (>= 4.5.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (< netcoreapp2.0) (>= netstandard2.0)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos)
+ System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (>= uap10.1)
+ System.Numerics.Vectors (>= 4.5) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461)
+ System.Runtime.CompilerServices.Unsafe (>= 4.7.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< netcoreapp3.1)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos)
+ System.Text.Encodings.Web (>= 4.7.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< netcoreapp3.1)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos)
+ System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (>= uap10.1)
+ System.ValueTuple (>= 4.5) - restriction: >= net461
System.Text.RegularExpressions (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
@@ -720,15 +739,15 @@ NUGET
System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.6) (< win8) (< wpa81)) (>= netcoreapp1.1)
System.Runtime.Extensions (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Threading (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (< netcoreapp1.1) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.Threading (4.3) - restriction: || (&& (>= monoandroid) (>= uap10.1)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< netstandard1.1) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= net46)) (&& (>= monotouch) (>= netstandard2.0)) (&& (>= monotouch) (>= uap10.1)) (&& (>= net45) (>= uap10.1)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (< net45) (>= net46) (< netstandard2.0)) (&& (< net45) (>= net461) (< netstandard2.0)) (&& (>= net46) (< netstandard1.1)) (&& (>= net46) (>= xamarintvos)) (&& (>= net46) (>= xamarinwatchos)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (< netstandard1.1) (>= uap10.1) (< win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (&& (< netstandard2.0) (>= xamarinios)) (&& (< netstandard2.0) (>= xamarinmac)) (&& (>= uap10.1) (< win8) (< wpa81)) (&& (>= uap10.1) (>= xamarinios)) (&& (>= uap10.1) (>= xamarinmac)) (&& (>= uap10.1) (>= xamarintvos)) (&& (>= uap10.1) (>= xamarinwatchos))
+ System.Threading (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard1.3) (< win8)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (< netstandard1.0) (>= netstandard1.3) (< portable-net45+win8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard1.6) (< portable-net45+win8+wpa81)) (&& (>= netstandard2.0) (>= uap10.0) (< win8) (< wpa81))
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
- System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (>= netcoreapp5.0) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
+ System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.6) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.4) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0)
System.Threading.Tasks.Dataflow (4.11.1) - restriction: >= netstandard2.0
- System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (>= netstandard2.0)) (&& (< netcoreapp3.0) (>= netstandard2.0)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.0))
+ System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= net46) (>= netstandard2.0)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (< netcoreapp3.0) (>= netstandard2.0)) (&& (>= netcoreapp5.0) (< netstandard1.2)) (&& (>= netcoreapp5.0) (< netstandard1.3)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.5)) (&& (>= netcoreapp5.0) (< netstandard1.6)) (&& (>= netcoreapp5.0) (< netstandard2.0)) (&& (>= netcoreapp5.0) (< portable-net45+win8+wpa81)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81)) (&& (>= netstandard2.0) (>= uap10.0))
System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< win8)) (&& (>= net45) (< netstandard2.0)) (>= net461) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= wp8)
System.Threading.Thread (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp5.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< net472) (>= netstandard2.0))
System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (< netcoreapp5.0) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)
@@ -739,7 +758,7 @@ NUGET
Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net451) (>= netstandard1.2) (< win81) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0)
- System.ValueTuple (4.5) - restriction: || (&& (>= net45) (>= netstandard2.0)) (&& (>= net46) (>= netstandard2.0)) (&& (>= netstandard2.0) (>= uap10.0))
+ System.ValueTuple (4.5) - restriction: || (&& (>= net45) (>= netstandard2.0)) (&& (>= net46) (>= netstandard2.0)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (>= netstandard2.0) (>= uap10.0))
System.Windows.Extensions (4.7) - restriction: >= netcoreapp3.0
System.Drawing.Common (>= 4.7) - restriction: >= netcoreapp3.0
System.Xml.ReaderWriter (4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard1.3) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.4) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard1.6) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.4) (< netstandard1.5) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.5) (< netstandard1.6) (< win8) (< wpa81)) (&& (< net45) (>= net46) (< netstandard1.3)) (&& (< net45) (>= net46) (< netstandard1.4)) (&& (>= netstandard1.0) (< portable-net45+win8+wpa81) (< wp8)) (&& (>= netstandard1.3) (< portable-net45+win8+wpa81)) (&& (< netstandard1.3) (>= uap10.0) (< win8) (< wpa81)) (&& (< netstandard1.5) (>= uap10.0) (< win8) (< wpa81))
diff --git a/Build/pester.ps1 b/Build/pester.ps1
index 10a4875dc..95b272090 100644
--- a/Build/pester.ps1
+++ b/Build/pester.ps1
@@ -1,10 +1,10 @@
-param([string]$ACV="0.0.0.0")
+param([string]$ACV="0.0.0.0", [string]$ReportName="!:!", [string]$FolderName="!:!")
-Import-Module "./_Packaging/Module/tools/netcoreapp2.0/AltCover.PowerShell.dll"
-Import-Module "./packages/pester/5.0.2/Pester.psm1"
+Import-Module "./_Packaging/$($FolderName)/tools/netcoreapp2.0/AltCover.PowerShell.dll"
+Import-Module "./packages/pester/5.0.4/tools/Pester.psm1"
Invoke-Altcover -?
-# Invoke-Pester -Script @{ Path='.\Build'; Parameters = @{ ACV = $ACV}} -EnableExit -OutputFormat NUnitXml -OutputFile "./_Reports/PesterReport.xml"
+# Invoke-Pester -Script @{ Path='.\Build'; Parameters = @{ ACV = $ACV}} -EnableExit -OutputFormat NUnitXml -OutputFile "./_Reports/$($ReportName).xml"
$configuration = [PesterConfiguration]::Default
$configuration.Run.Path = '.\Build'
@@ -12,6 +12,6 @@ $configuration.Run.Exit = $true
$configuration.TestResult.Enabled = $true
# $configuration.TestResult.OutputFormat = "NUnit2.5"
-$configuration.TestResult.OutputPath = "./_Reports/PesterReport.xml"
+$configuration.TestResult.OutputPath = "./_Reports/$($ReportName).xml"
Invoke-Pester -Configuration $configuration
\ No newline at end of file
diff --git a/Build/powershell.ps1 b/Build/powershell.ps1
deleted file mode 100644
index 365890e4f..000000000
--- a/Build/powershell.ps1
+++ /dev/null
@@ -1,18 +0,0 @@
-param([string]$ACV="0.0.0.0")
-
-Import-Module "./_Packaging/Unpack/tools/net45/AltCover.PowerShell.dll"
-Import-Module "./packages/pester/5.0.2/Pester.psm1"
-
-Invoke-Altcover -?
-# Invoke-Pester -Script @{ Path='.\Build'; Parameters = @{ ACV = $ACV}} -EnableExit -OutputFormat NUnitXml -OutputFile "./_Reports/PoshReport.xml"
-
-
-$configuration = [PesterConfiguration]::Default
-$configuration.Run.Path = '.\Build'
-$configuration.Run.Exit = $true
-
-$configuration.TestResult.Enabled = $true
-# $configuration.TestResult.OutputFormat = "NUnit2.5"
-$configuration.TestResult.OutputPath = "./_Reports/PoshReport.xml"
-
-Invoke-Pester -Configuration $configuration
diff --git a/Build/prepareDocumentation.ps1 b/Build/prepareDocumentation.ps1
index 795e724f4..4fb2898a1 100644
--- a/Build/prepareDocumentation.ps1
+++ b/Build/prepareDocumentation.ps1
@@ -1,7 +1,10 @@
-Import-Module "./_Binaries/AltCover.PowerShell/Release+AnyCPU/net47/AltCover.PowerShell.dll"
+## TODO -- AltCover => AltCover.Engine
+
+Import-Module "./_Binaries/AltCover.PowerShell/Release+AnyCPU/netstandard2.0/AltCover.PowerShell.dll"
## clear first
dir -recurse "./docs/*apidoc.md" | del -force
+dir -recurse "./docs/*.fsx.lock" | del -force
## Documentation
@@ -275,7 +278,7 @@ The full command line is
$header | Out-File -Encoding UTF8 $mdfile
-$resources = [xml](Get-Content "./AltCover/Strings.resx")
+$resources = [xml](Get-Content "./AltCover.Engine/Strings.resx")
$helptext = $resources.root.data | ? { $_.name -eq "HelpText" } | % { $_.value }
@@ -370,7 +373,35 @@ In release 5.3, the writing the collected data has been offloaded to an in-proce
$footer | Out-File -Encoding UTF8 -Append $mdfile
+### docs/AltCover.Fake.DotNet.Testing.AltCover/index.md
+
+$lines = Get-Content "./Build/AltCover.Fake.DotNet.Testing.AltCover.md"
+$lines | % {
+ if ($_ -like "!!*") {
+ Get-Content ($_.Substring(2))
+ }
+ else { $_ }
+} | Set-Content "./docs/AltCover.Fake.DotNet.Testing.AltCover/index.md"
+
+### docs/Fake-and-Cake-integration.md
+
+$lines = Get-Content "./Build/Fake-and-Cake-integration.md"
+$lines | % {
+ if ($_ -like "!!*") {
+ Get-Content ($_.Substring(2))
+ }
+ else { $_ }
+} | Set-Content "./docs/Fake-and-Cake-integration.md"
+
+
+##-----------------------------------------
+
Write-Host "In node.js prompt, 'harp server C:\Users\steve\Documents\GitHub\altcover\docs'"
+Write-Host ""
+Write-Host "Touch test examples like"
+Write-Host "dotnet fake run .\docs\AltCover.Fake.DotNet.Testing.AltCover\BuildSample_1.fsx"
+Write-Host "dotnet fake run .\docs\AltCover.Fake.DotNet.Testing.AltCover\BuildSample_2.fsx"
+Write-Host "dotnet fake run .\docs\BuildSample_1.fsx"
diff --git a/Build/setup.fsx b/Build/setup.fsx
index 00710756a..c8e463172 100644
--- a/Build/setup.fsx
+++ b/Build/setup.fsx
@@ -1,18 +1,17 @@
#r "paket:
nuget BlackFox.VsWhere >= 1.0.0
-nuget Fake.Core.Target >= 5.20.1
-nuget Fake.Core.Environment >= 5.20.1
-nuget Fake.Core.Process >= 5.20.1
-nuget Fake.DotNet.Cli >= 5.20.1
-nuget Fake.DotNet.NuGet >= 5.20.1
-nuget Fake.IO.FileSystem >= 5.20.1 //"
+nuget Fake.Core.Target >= 5.20.3
+nuget Fake.Core.Environment >= 5.20.3
+nuget Fake.Core.Process >= 5.20.3
+nuget Fake.DotNet.Cli >= 5.20.3
+nuget Fake.DotNet.NuGet >= 5.20.3
+nuget Fake.IO.FileSystem >= 5.20.3 //"
#r "System.Xml"
#r "System.Xml.Linq"
open System
open System.IO
-open System.Xml
open System.Xml.Linq
open Fake.Core
@@ -21,13 +20,14 @@ open Fake.DotNet
open Fake.DotNet.NuGet.Restore
open Fake.IO
open Fake.IO.FileSystemOperators
+open Fake.IO.Globbing.Operators
let consoleBefore = (Console.ForegroundColor, Console.BackgroundColor)
-Shell.copyFile "./AltCover/Abstract.fs" "./AltCover/Abstract.fsi"
+Shell.copyFile "./AltCover.Engine/Abstract.fsi" "./AltCover.Engine/Abstract.fs"
// Really bootstrap
-let dotnetPath = "dotnet" |> Fake.Core.ProcessUtils.tryFindFileOnPath
+let dotnetPath = "dotnet" |> ProcessUtils.tryFindFileOnPath
let dotnetOptions (o : DotNet.Options) =
match dotnetPath with
@@ -37,11 +37,11 @@ let dotnetOptions (o : DotNet.Options) =
DotNet.restore (fun o ->
{ o with
Packages = [ "./packages" ]
- Common = dotnetOptions o.Common }) "./Build/dotnet-cli.csproj"
+ Common = dotnetOptions o.Common }) "./Build/NuGet.csproj"
let toolPackages =
let xml =
- "./Build/dotnet-cli.csproj"
+ "./Build/NuGet.csproj"
|> Path.getFullName
|> XDocument.Load
xml.Descendants(XName.Get("PackageReference"))
@@ -74,36 +74,38 @@ let restore (o : RestorePackageParams) = { o with ToolPath = nuget }
let build = """// generated by dotnet fake run .\Build\setup.fsx
// includes by source all of AltCoverFake.DotNet.Testing.AltCover
#r "paket:
-nuget Fake.Core.Target >= 5.20.1
-nuget Fake.Core.Environment >= 5.20.1
-nuget Fake.Core.Process >= 5.20.1
-nuget Fake.DotNet.AssemblyInfoFile >= 5.20.1
-nuget Fake.DotNet.Cli >= 5.20.1
-nuget Fake.DotNet.FxCop >= 5.20.1
-nuget Fake.DotNet.MSBuild >= 5.20.1
-nuget Fake.DotNet.NuGet >= 5.20.1
-nuget Fake.DotNet.Testing.NUnit >= 5.20.1
-nuget Fake.DotNet.Testing.OpenCover >= 5.20.1
-nuget Fake.DotNet.Testing.XUnit2 >= 5.20.1
-nuget Fake.IO.FileSystem >= 5.20.1
-nuget Fake.DotNet.Testing.Coverlet >= 5.20.1
-nuget Fake.Testing.ReportGenerator >= 5.20.1
-nuget Fake.Tools.Git >= 5.20.1
+nuget Fake.Core.Target >= 5.20.3
+nuget Fake.Core.Environment >= 5.20.3
+nuget Fake.Core.Process >= 5.20.3
+nuget Fake.DotNet.AssemblyInfoFile >= 5.20.3
+nuget Fake.DotNet.Cli >= 5.20.3
+nuget Fake.DotNet.FxCop >= 5.20.3
+nuget Fake.DotNet.MSBuild >= 5.20.3
+nuget Fake.DotNet.NuGet >= 5.20.3
+nuget Fake.DotNet.Testing.NUnit >= 5.20.3
+nuget Fake.DotNet.Testing.OpenCover >= 5.20.3
+nuget Fake.DotNet.Testing.XUnit2 >= 5.20.3
+nuget Fake.IO.FileSystem >= 5.20.3
+nuget Fake.DotNet.Testing.Coverlet >= 5.20.3
+nuget Fake.Testing.ReportGenerator >= 5.20.3
+nuget Fake.Tools.Git >= 5.20.3
nuget AltCode.Fake.DotNet.Gendarme >= 5.18.1.24
nuget BlackFox.CommandLine >= 1.0.0
nuget BlackFox.VsWhere >= 1.1.0
nuget FSharpLint.Core >= 0.16.3
nuget Markdown >= 2.2.1
nuget NUnit >= 3.12.0
+nuget Fuchu >= 1.1.0
+nuget Unquote >= 5.0.0
nuget YamlDotNet >= 8.1.2 //"
#r "System.IO.Compression.FileSystem.dll"
#r "System.Xml"
#r "System.Xml.Linq"
-#load "../AltCover/Abstract.fs"
-#load "../AltCover/Primitive.fs"
-#load "../AltCover/TypeSafe.fs"
-#load "../AltCover/AltCover.fs"
-#load "../AltCover/Args.fs"
+#load "../AltCover.Engine/Abstract.fs"
+#load "../AltCover.Engine/Primitive.fs"
+#load "../AltCover.Engine/TypeSafe.fs"
+#load "../AltCover.Engine/AltCover.fs"
+#load "../AltCover.Engine/Args.fs"
#load "../AltCover.Fake.DotNet.Testing.AltCover/AltCoverCommand.fs"
#load "../AltCover.DotNet/DotNet.fs"
#load "../AltCover.Fake/Fake.fs"
@@ -136,7 +138,7 @@ _Target "FxCop" (fun _ ->
let check t pf (f : string) =
let destination = t @@ (f.Substring pf)
- printfn "%A" destination
+ // printfn "%A" destination
destination
|> File.Exists
|> not
@@ -146,8 +148,24 @@ _Target "FxCop" (fun _ ->
let rules = target @@ "Rules"
Shell.copyDir rules dixon (fun _ -> true)))
-// Restore the NuGet packages used by the build and the Framework version
+// Set up the Visuailzer test data
+_Target "AttachReports" ( fun _ ->
+ let tr = "./Tests.Visualizer/Reports"
+ Directory.ensure tr
+ Shell.cleanDir tr
+
+ let sample20 = "./Sample20" |> Path.getFullName
+
+ (!!"./Sample20/Reports/*")
+ |> Seq.iter (fun f ->
+ let name = f |> Path.GetFileName
+ let text = f |> File.ReadAllText
+ let report = tr @@ name
+ File.WriteAllText (report, text.Replace(@"C:\temp\", sample20 + "/"))
+ )
+)
+// Restore the NuGet packages used by the build and the Framework version
_Target "Preparation" (fun _ -> RestoreMSSolutionPackages restore "./MCS.sln")
let defaultTarget() =
@@ -157,4 +175,7 @@ let defaultTarget() =
"FxCop"
=?> ("Preparation", Environment.isWindows)
+"AttachReports"
+==> "Preparation"
+
Target.runOrDefault <| defaultTarget()
\ No newline at end of file
diff --git a/Build/setup.fsx.lock b/Build/setup.fsx.lock
index 6f08ab948..c146dae49 100644
--- a/Build/setup.fsx.lock
+++ b/Build/setup.fsx.lock
@@ -5,99 +5,99 @@ NUGET
BlackFox.VsWhere (1.1)
FSharp.Core (>= 4.2.3)
Microsoft.Win32.Registry (>= 4.7)
- Fake.Core.CommandLineParsing (5.20.1)
+ Fake.Core.CommandLineParsing (5.20.3)
FParsec (>= 1.1.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Context (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Environment (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.FakeVar (5.20.1)
- Fake.Core.Context (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Process (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- System.Collections.Immutable (>= 1.7)
- Fake.Core.SemVer (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.String (5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Target (5.20.1)
- Fake.Core.CommandLineParsing (>= 5.20.1)
- Fake.Core.Context (>= 5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Control.Reactive (>= 4.2)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Tasks (5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Trace (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.FakeVar (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Core.Xml (5.20.1)
- Fake.Core.String (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.DotNet.Cli (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.DotNet.MSBuild (>= 5.20.1)
- Fake.DotNet.NuGet (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Context (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Environment (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.FakeVar (5.20.3)
+ Fake.Core.Context (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Process (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ System.Collections.Immutable (>= 1.7.1)
+ Fake.Core.SemVer (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.String (5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Target (5.20.3)
+ Fake.Core.CommandLineParsing (>= 5.20.3)
+ Fake.Core.Context (>= 5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Control.Reactive (>= 4.4.2)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Tasks (5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Trace (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.FakeVar (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Core.Xml (5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.DotNet.Cli (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.DotNet.MSBuild (>= 5.20.3)
+ Fake.DotNet.NuGet (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
Mono.Posix.NETStandard (>= 1.0)
Newtonsoft.Json (>= 12.0.3)
- Fake.DotNet.MSBuild (5.20.1)
- BlackFox.VsWhere (>= 1.0)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- MSBuild.StructuredLogger (>= 2.1.117)
- Fake.DotNet.NuGet (5.20.1)
- Fake.Core.Environment (>= 5.20.1)
- Fake.Core.Process (>= 5.20.1)
- Fake.Core.SemVer (>= 5.20.1)
- Fake.Core.String (>= 5.20.1)
- Fake.Core.Tasks (>= 5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- Fake.Core.Xml (>= 5.20.1)
- Fake.IO.FileSystem (>= 5.20.1)
- Fake.Net.Http (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ Fake.DotNet.MSBuild (5.20.3)
+ BlackFox.VsWhere (>= 1.1)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ MSBuild.StructuredLogger (>= 2.1.176)
+ Fake.DotNet.NuGet (5.20.3)
+ Fake.Core.Environment (>= 5.20.3)
+ Fake.Core.Process (>= 5.20.3)
+ Fake.Core.SemVer (>= 5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ Fake.Core.Tasks (>= 5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ Fake.Core.Xml (>= 5.20.3)
+ Fake.IO.FileSystem (>= 5.20.3)
+ Fake.Net.Http (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
Newtonsoft.Json (>= 12.0.3)
- NuGet.Protocol (>= 5.5.1)
- Fake.IO.FileSystem (5.20.1)
- Fake.Core.String (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
- Fake.Net.Http (5.20.1)
- Fake.Core.Trace (>= 5.20.1)
- FSharp.Core (>= 4.7.1)
+ NuGet.Protocol (>= 5.6)
+ Fake.IO.FileSystem (5.20.3)
+ Fake.Core.String (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
+ Fake.Net.Http (5.20.3)
+ Fake.Core.Trace (>= 5.20.3)
+ FSharp.Core (>= 4.7.2)
FParsec (1.1.1)
FSharp.Core (>= 4.3.4)
- FSharp.Control.Reactive (4.4)
- FSharp.Core (>= 4.7)
- System.Reactive (>= 4.3.2)
+ FSharp.Control.Reactive (4.4.2)
+ FSharp.Core (>= 4.7.2)
+ System.Reactive (>= 4.4.1)
FSharp.Core (4.7.2)
- Microsoft.Build (16.6)
- Microsoft.Build.Framework (16.6)
+ Microsoft.Build (16.7)
+ Microsoft.Build.Framework (16.7)
System.Security.Permissions (>= 4.7)
- Microsoft.Build.Tasks.Core (16.6)
- Microsoft.Build.Framework (>= 16.6)
- Microsoft.Build.Utilities.Core (>= 16.6)
+ Microsoft.Build.Tasks.Core (16.7)
+ Microsoft.Build.Framework (>= 16.7)
+ Microsoft.Build.Utilities.Core (>= 16.7)
Microsoft.Win32.Registry (>= 4.3)
System.CodeDom (>= 4.4)
System.Collections.Immutable (>= 1.5)
@@ -106,14 +106,19 @@ NUGET
System.Resources.Extensions (>= 4.6)
System.Security.Permissions (>= 4.7)
System.Threading.Tasks.Dataflow (>= 4.9)
- Microsoft.Build.Utilities.Core (16.6)
- Microsoft.Build.Framework (>= 16.6)
+ Microsoft.Build.Tasks.Git (1.0)
+ Microsoft.Build.Utilities.Core (16.7)
+ Microsoft.Build.Framework (>= 16.7)
Microsoft.Win32.Registry (>= 4.3)
System.Collections.Immutable (>= 1.5)
System.Security.Permissions (>= 4.7)
System.Text.Encoding.CodePages (>= 4.0.1)
- Microsoft.NETCore.Platforms (3.1.1)
+ Microsoft.NETCore.Platforms (3.1.3)
Microsoft.NETCore.Targets (3.1)
+ Microsoft.SourceLink.Common (1.0)
+ Microsoft.SourceLink.GitHub (1.0)
+ Microsoft.Build.Tasks.Git (>= 1.0)
+ Microsoft.SourceLink.Common (>= 1.0)
Microsoft.Win32.Primitives (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -124,36 +129,35 @@ NUGET
System.Security.AccessControl (>= 4.7)
System.Security.Principal.Windows (>= 4.7)
Mono.Posix.NETStandard (1.0)
- MSBuild.StructuredLogger (2.1.133)
+ MSBuild.StructuredLogger (2.1.176)
Microsoft.Build (>= 16.4)
Microsoft.Build.Framework (>= 16.4)
Microsoft.Build.Tasks.Core (>= 16.4)
Microsoft.Build.Utilities.Core (>= 16.4)
- System.IO.Compression (>= 4.3)
+ Microsoft.SourceLink.GitHub (>= 1.0)
Newtonsoft.Json (12.0.3)
- NuGet.Common (5.6)
- NuGet.Frameworks (>= 5.6)
+ NuGet.Common (5.7)
+ NuGet.Frameworks (>= 5.7)
System.Diagnostics.Process (>= 4.3)
System.Threading.Thread (>= 4.3)
- NuGet.Configuration (5.6)
- NuGet.Common (>= 5.6)
+ NuGet.Configuration (5.7)
+ NuGet.Common (>= 5.7)
System.Security.Cryptography.ProtectedData (>= 4.3)
- NuGet.Frameworks (5.6)
- NuGet.Packaging (5.6)
+ NuGet.Frameworks (5.7)
+ NuGet.Packaging (5.7)
Newtonsoft.Json (>= 9.0.1)
- NuGet.Configuration (>= 5.6)
- NuGet.Versioning (>= 5.6)
+ NuGet.Configuration (>= 5.7)
+ NuGet.Versioning (>= 5.7)
System.Dynamic.Runtime (>= 4.3)
- NuGet.Protocol (5.6)
- NuGet.Packaging (>= 5.6)
+ System.Security.Cryptography.Cng (>= 5.0.0-preview.3.20214.6)
+ System.Security.Cryptography.Pkcs (>= 5.0.0-preview.3.20214.6)
+ NuGet.Protocol (5.7)
+ NuGet.Packaging (>= 5.7)
System.Dynamic.Runtime (>= 4.3)
- NuGet.Versioning (5.6)
+ NuGet.Versioning (5.7)
runtime.native.System (4.3.1)
Microsoft.NETCore.Platforms (>= 1.1.1)
Microsoft.NETCore.Targets (>= 1.1.3)
- runtime.native.System.IO.Compression (4.3.2)
- Microsoft.NETCore.Platforms (>= 1.1.1)
- Microsoft.NETCore.Targets (>= 1.1.3)
System.Buffers (4.5.1)
System.CodeDom (4.7)
System.Collections (4.3)
@@ -203,6 +207,9 @@ NUGET
System.Runtime (>= 4.3)
System.Runtime.Extensions (>= 4.3)
System.Threading (>= 4.3)
+ System.Formats.Asn1 (5.0.0-preview.8.20407.11)
+ System.Buffers (>= 4.5.1)
+ System.Memory (>= 4.5.4)
System.Globalization (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -213,22 +220,6 @@ NUGET
System.Runtime (>= 4.3)
System.Text.Encoding (>= 4.3)
System.Threading.Tasks (>= 4.3)
- System.IO.Compression (4.3)
- Microsoft.NETCore.Platforms (>= 1.1)
- runtime.native.System (>= 4.3)
- runtime.native.System.IO.Compression (>= 4.3)
- System.Buffers (>= 4.3)
- System.Collections (>= 4.3)
- System.Diagnostics.Debug (>= 4.3)
- System.IO (>= 4.3)
- System.Resources.ResourceManager (>= 4.3)
- System.Runtime (>= 4.3)
- System.Runtime.Extensions (>= 4.3)
- System.Runtime.Handles (>= 4.3)
- System.Runtime.InteropServices (>= 4.3)
- System.Text.Encoding (>= 4.3)
- System.Threading (>= 4.3)
- System.Threading.Tasks (>= 4.3)
System.IO.FileSystem (4.3)
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
@@ -332,6 +323,12 @@ NUGET
System.Runtime (>= 4.3)
System.Security.AccessControl (4.7)
System.Security.Principal.Windows (>= 4.7)
+ System.Security.Cryptography.Cng (5.0.0-preview.8.20407.11)
+ System.Security.Cryptography.Pkcs (5.0.0-preview.8.20407.11)
+ System.Buffers (>= 4.5.1)
+ System.Formats.Asn1 (>= 5.0.0-preview.8.20407.11)
+ System.Memory (>= 4.5.4)
+ System.Security.Cryptography.Cng (>= 5.0.0-preview.8.20407.11)
System.Security.Cryptography.ProtectedData (4.7)
System.Memory (>= 4.5.3)
System.Security.Permissions (4.7)
diff --git a/Build/targets.fsx b/Build/targets.fsx
index f926c2a67..a0c459288 100644
--- a/Build/targets.fsx
+++ b/Build/targets.fsx
@@ -1,4 +1,3 @@
-// dir -Recurse *ssemblyAttributes.cs | % { del -Force $_.FullName }
// Downloads/docker-machine-Windows-x86_64 create --driver virtualbox
open System
@@ -29,6 +28,7 @@ open Fake.Tools.Git
open FSharpLint.Application
open FSharpLint.Framework
open NUnit.Framework
+open Swensen.Unquote
let Copyright = ref String.Empty
let Version = ref String.Empty
@@ -37,22 +37,20 @@ let consoleBefore = (Console.ForegroundColor, Console.BackgroundColor)
let AltCoverFilter(p : Primitive.PrepareOptions) =
{ p with
MethodFilter = "WaitForExitCustom" :: (p.MethodFilter |> Seq.toList)
- AssemblyExcludeFilter = "Tests" :: (p.AssemblyExcludeFilter |> Seq.toList)
AssemblyFilter = [ @"\.DataCollector"; "Sample" ] @ (p.AssemblyFilter |> Seq.toList)
LocalSource = true
TypeFilter =
- [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode" ] @ (p.TypeFilter |> Seq.toList) }
+ [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode"; "UnitTestStub" ] @ (p.TypeFilter |> Seq.toList) }
let AltCoverFilterTypeSafe(p : TypeSafe.PrepareOptions) =
{ p with
MethodFilter = [TypeSafe.Raw "WaitForExitCustom"] |> p.MethodFilter.Join
- AssemblyExcludeFilter = [ TypeSafe.Raw "Tests"] |> p.AssemblyExcludeFilter.Join
AssemblyFilter = [ @"\.DataCollector"; "Sample" ]
|> Seq.map TypeSafe.Raw
|> p.AssemblyFilter.Join
LocalSource = TypeSafe.Set
TypeFilter =
- [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode" ]
+ [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode"; "UnitTestStub"; "SolutionRoot" ]
|> Seq.map TypeSafe.Raw
|> p.TypeFilter.Join }
@@ -62,28 +60,26 @@ let AltCoverApiFilter(p : Primitive.PrepareOptions) =
AssemblyFilter = [ "?^AltCover\." ] @ (p.AssemblyFilter |> Seq.toList)
LocalSource = true
TypeFilter =
- [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode"; " Seq.toList) }
+ [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode"; " Seq.toList) }
let AltCoverFilterX(p : Primitive.PrepareOptions) =
{ p with
MethodFilter = "WaitForExitCustom" :: (p.MethodFilter |> Seq.toList)
- AssemblyExcludeFilter = "Tests" :: (p.AssemblyExcludeFilter |> Seq.toList)
AssemblyFilter = [ @"\.DataCollector"; "Sample" ] @ (p.AssemblyFilter |> Seq.toList)
LocalSource = true
TypeFilter =
- [ @"System\."; @"Sample3\.Class2"; "Tests"; "Microsoft"; "ICSharpCode"; " Seq.toList) }
let AltCoverFilterXTypeSafe(p : TypeSafe.PrepareOptions) =
{ p with
MethodFilter = [TypeSafe.Raw "WaitForExitCustom"] |> p.MethodFilter.Join
- AssemblyExcludeFilter = [ TypeSafe.Raw "Tests"] |> p.AssemblyExcludeFilter.Join
AssemblyFilter = [ @"\.DataCollector"; "Sample" ]
|> Seq.map TypeSafe.Raw
|> p.AssemblyFilter.Join
LocalSource = TypeSafe.Set
TypeFilter =
- [ @"System\."; @"Sample3\.Class2"; "Tests"; "Microsoft"; "ICSharpCode" ]
+ [ @"System\."; @"Sample3\.Class2"; "Microsoft"; "ICSharpCode"; "UnitTestStub"; "SolutionRoot" ]
|> Seq.map TypeSafe.Raw
|> p.TypeFilter.Join }
@@ -156,7 +152,7 @@ let pwsh =
let toolPackages =
let xml =
- "./Build/dotnet-cli.csproj"
+ "./Build/NuGet.csproj"
|> Path.getFullName
|> XDocument.Load
xml.Descendants(XName.Get("PackageReference"))
@@ -174,6 +170,9 @@ let openCoverConsole =
let nunitConsole =
("./packages/" + (packageVersion "NUnit.ConsoleRunner") + "/tools/nunit3-console.exe")
|> Path.getFullName
+let xmldoc2cmdletdoc =
+ ("./packages/" + (packageVersion "XmlDoc2CmdletDoc") + "/tools/netcoreapp2.1/XmlDoc2CmdletDoc.dll")
+ |> Path.getFullName
let cliArguments =
{ MSBuild.CliArguments.Create() with
@@ -198,7 +197,7 @@ let NuGetAltCover =
toolPackages
|> Seq.filter (fun kv -> kv.Key = "altcover")
|> Seq.map (fun _ ->
- ("./packages/" + (packageVersion "altcover") + "/tools/net45/AltCover.exe")
+ ("./packages/" + (packageVersion "altcover") + "/tools/net472/AltCover.exe")
|> Path.getFullName)
|> Seq.filter File.Exists
|> Seq.tryHead
@@ -270,9 +269,19 @@ let uncovered (path : string) =
(f
|> Path.GetDirectoryName
|> Path.GetFileName) numeric
+ // if numeric > 0 then
+ // printfn "%A" xml
numeric))
|> Seq.toList
+let coverageSummary _ =
+ let numbers = uncovered "_Reports/_Unit*/Summary.xml"
+ if numbers
+ |> List.tryFind (fun n -> n > 0)
+ |> Option.isSome
+ || !misses > 1
+ then Assert.Fail("Coverage is too low")
+
let msbuildRelease proj =
MSBuild.build (fun p ->
{ p with
@@ -298,12 +307,12 @@ let msbuildDebug proj =
let dotnetBuildRelease proj =
DotNet.build (fun p ->
{ p.WithCommon dotnetOptions with Configuration = DotNet.BuildConfiguration.Release }
- |> buildWithCLIArguments) proj
+ |> buildWithCLIArguments) (Path.GetFullPath proj)
let dotnetBuildDebug proj =
DotNet.build (fun p ->
{ p.WithCommon dotnetOptions with Configuration = DotNet.BuildConfiguration.Debug }
- |> buildWithCLIArguments) proj
+ |> buildWithCLIArguments) (Path.GetFullPath proj)
// Information.getCurrentHash()
let commitHash = Information.getCurrentSHA1 (".")
@@ -321,6 +330,13 @@ _Target "RebuildPaketLock" ignore
_Target "Preparation" ignore
+_Target "PreClean" (fun _ ->
+// dir -Recurse *ssemblyAttributes.cs | % { del -Force $_.FullName }
+ !!"**/*ssemblyAttributes.cs"
+ |> Seq.map Path.GetFullPath
+ |> Seq.toList
+ |> List.iter File.delete)
+
_Target "Clean" (fun _ ->
printfn "Cleaning the build and deploy folders"
Actions.Clean())
@@ -345,7 +361,7 @@ _Target "SetVersion" (fun _ ->
Copyright := "Copyright " + copy
Directory.ensure "./_Generated"
- Shell.copyFile "./AltCover/Abstract.fs" "./AltCover/Abstract.fsi"
+ Shell.copyFile "./AltCover.Engine/Abstract.fsi" "./AltCover.Engine/Abstract.fs"
Actions.InternalsVisibleTo(!Version)
let v' = !Version
@@ -381,13 +397,12 @@ module SolutionRoot =
if File.Exists(path) then File.ReadAllText(path) else String.Empty
if not (old.Equals(hack)) then File.WriteAllText(path, hack)
- [ "./AltCover.Recorder/altcover.recorder.core.fsproj" // net20 resgen
- "./AltCover.Shadow/altcover.shadow.core.fsproj" // net20 resgen
- "./Recorder.Tests/altcover.recorder.tests.core.fsproj"
- "./AltCover.Avalonia/altcover.avalonia.fsproj"
+ [ "./AltCover.Recorder/AltCover.Recorder.fsproj" // net20 resgen ?? https://docs.microsoft.com/en-us/visualstudio/msbuild/generateresource-task?view=vs-2019
+ "./Recorder.Tests/AltCover.Recorder.Tests.fsproj"
+ "./AltCover.Avalonia/AltCover.Avalonia.fsproj"
"./AltCover.Avalonia.FuncUI/AltCover.Avalonia.FuncUI.fsproj"
- "./AltCover.Visualizer/altcover.visualizer.core.fsproj" // GAC
- "./Tests.Visualizer/altcover.visualizer.tests.core.fsproj" ]
+ "./AltCover.Visualizer/AltCover.Visualizer.fsproj" // GAC
+ "./Tests.Visualizer/AltCover.Visualizer.Tests.fsproj" ]
|> Seq.iter (fun f ->
let dir = Path.GetDirectoryName f
let proj = Path.GetFileName f
@@ -399,9 +414,43 @@ _Target "Compilation" ignore
_Target "BuildRelease" (fun _ ->
try
- [ "./altcover.recorder.core.sln"; "./altcover.visualizer.core.sln"; "MCS.sln" ] |> Seq.iter msbuildRelease // gac+net20; mono
-
- [ "./altcover.core.sln" ] |> Seq.iter dotnetBuildRelease
+ [ "./AltCover.Recorder.sln"; "./AltCover.Visualizer.sln"; "MCS.sln" ] |> Seq.iter msbuildRelease // gac+net20; mono
+
+ [ "./AltCover.sln" ] |> Seq.iter dotnetBuildRelease
+
+ // document cmdlets ahead of packaging
+ let packages =
+ let xml =
+ "./AltCover.PowerShell/AltCover.PowerShell.fsproj"
+ |> Path.getFullName
+ |> XDocument.Load
+ xml.Descendants(XName.Get("PackageReference"))
+ |> Seq.map
+ (fun x ->
+ let incl = x.Attribute(XName.Get("Include"))
+ let update = x.Attribute(XName.Get("Update"))
+ let version = x.Attribute(XName.Get("Version")).Value
+ if incl |> isNull
+ then (update.Value, version)
+ else (incl.Value, version))
+ |> Map.ofSeq
+ let packageVersionPart (p : string) = nugetCache +
+ "/" + p.ToLowerInvariant() + "/" + (packages.Item p) +
+ "/lib/netstandard2.0/"
+
+ Shell.copyFile
+ ("./_Binaries/AltCover.PowerShell/Release+AnyCPU/netstandard2.0/FSharp.Core.dll")
+ ((packageVersionPart "FSharp.Core") + "FSharp.Core.dll")
+ Shell.copyFile
+ ("./_Binaries/AltCover.PowerShell/Release+AnyCPU/netstandard2.0/System.Management.Automation.dll")
+ ((packageVersionPart "PowerShellStandard.Library") + "System.Management.Automation.dll")
+
+ let cmdlets = "./_Binaries/AltCover.PowerShell/Release+AnyCPU/netstandard2.0/AltCover.PowerShell.dll"
+ |> Path.getFullName
+ if Environment.isWindows then // the Jolt comment reader library is sadly windows/fullframework bound
+ Actions.RunDotnet dotnetOptions ""
+ ("--roll-forward Major " + xmldoc2cmdletdoc + " -strict " + cmdlets)
+ "documenting cmdlets"
with x ->
printfn "%A" x
reraise())
@@ -418,14 +467,14 @@ _Target "BuildDebug" (fun _ ->
Shell.copyFile "/tmp/.AltCover_SourceLink/Sample14.SourceLink.Class3.cs"
"./Sample14/Sample14/Class3.txt"
- [ "./altcover.recorder.core.sln"; "./altcover.visualizer.core.sln"; "MCS.sln" ] |> Seq.iter msbuildDebug // gac+net20; mono
+ [ "./AltCover.Recorder.sln"; "./AltCover.Visualizer.sln"; "MCS.sln" ] |> Seq.iter msbuildDebug // gac+net20; mono
- [ "./altcover.core.sln"; "./Sample14/Sample14.sln" ] |> Seq.iter dotnetBuildDebug
+ [ "./AltCover.sln"; "./Sample14/Sample14.sln" ] |> Seq.iter dotnetBuildDebug
Shell.copy "./_SourceLink" (!!"./Sample14/Sample14/bin/Debug/netcoreapp2.1/*"))
_Target "BuildMonoSamples" (fun _ ->
- [ "./Sample8/sample8.core.csproj" ] |> Seq.iter dotnetBuildDebug // build to embed on non-Windows
+ [ "./Sample8/Sample8.csproj" ] |> Seq.iter dotnetBuildDebug // build to embed on non-Windows
let mcs = "_Binaries/MCS/Release+AnyCPU/MCS.exe"
[ ("./_Mono/Sample1",
@@ -456,7 +505,7 @@ _Target "Lint" (fun _ ->
{ Lint.OptionalLintParameters.Default with
Configuration = FromFile(Path.getFullName "./fsharplint.json") }
- [
+ [
!!"**/*.fsproj"
|> Seq.collect (fun n -> !!(Path.GetDirectoryName n @@ "*.fs"))
|> Seq.distinct;
@@ -469,13 +518,7 @@ _Target "Lint" (fun _ ->
| Lint.LintResult.Failure x -> failwithf "%A" x
| Lint.LintResult.Success w ->
w
- |> Seq.filter (fun x ->
- match x.Details.SuggestedFix with
- | Some l ->
- match l.Force() with
- | Some fix -> fix.FromText <> "AltCover_Fake" // special case
- | _ -> false
- | _ -> false))
+ |> Seq.filter (fun x -> x.Details.SuggestedFix |> Option.isSome))
|> Seq.fold (fun _ x ->
printfn "Info: %A\r\n Range: %A\r\n Fix: %A\r\n====" x.Details.Message
x.Details.Range x.Details.SuggestedFix
@@ -490,24 +533,26 @@ _Target "Gendarme" (fun _ -> // Needs debug because release is compiled --standa
Directory.ensure "./_Reports"
[ ("./Build/common-rules.xml",
- [ "_Binaries/AltCover.NetCoreApp/Debug+AnyCPU/netcoreapp2.0/AltCover.NetCoreApp.dll"
+ [ "_Binaries/AltCover.Engine/Debug+AnyCPU/netstandard2.0/AltCover.Engine.dll"
"_Binaries/AltCover/Debug+AnyCPU/netcoreapp2.0/AltCover.dll"
- "_Binaries/AltCover.Shadow/Debug+AnyCPU/netstandard2.0/AltCover.Shadow.dll"
+ "_Binaries/AltCover.Recorder/Debug+AnyCPU/net20/AltCover.Recorder.dll"
"_Binaries/AltCover.PowerShell/Debug+AnyCPU/netstandard2.0/AltCover.PowerShell.dll"
"_Binaries/AltCover.Fake/Debug+AnyCPU/netstandard2.0/AltCover.Fake.dll"
"_Binaries/AltCover.DotNet/Debug+AnyCPU/netstandard2.0/AltCover.DotNet.dll"
"_Binaries/AltCover.Toolkit/Debug+AnyCPU/netstandard2.0/AltCover.Toolkit.dll"
"_Binaries/AltCover.UICommon/Debug+AnyCPU/netstandard2.0/AltCover.UICommon.dll"
- "_Binaries/AltCover.Visualizer/Debug+AnyCPU/netcoreapp2.1/AltCover.Visualizer.dll"
+ "_Binaries/AltCover.Visualizer/Debug+AnyCPU/netcoreapp2.1/AltCover.Visualizer.dll" // GTK3 (obsolete)
"_Binaries/AltCover.Fake.DotNet.Testing.AltCover/Debug+AnyCPU/netstandard2.0/AltCover.Fake.DotNet.Testing.AltCover.dll" ])
("./Build/common-rules.xml",
- [ "_Binaries/AltCover.Visualizer/Debug+AnyCPU/net45/AltCover.Visualizer.exe" ])
-// ("./Build/common-rules.xml",
+ [ "_Binaries/AltCover/Debug+AnyCPU/netcoreapp2.1/AltCover.dll" // global tool build
+ "_Binaries/AltCover.Visualizer/Debug+AnyCPU/net472/AltCover.Visualizer.exe" ]) // GTK2
+// ("./Build/common-rules.xml", // Avalonia generated code breaks everything
// [ "_Binaries/AltCover.Visualizer.Avalonia/Debug+AnyCPU/netcoreapp2.1/AltCover.Visualizer.dll" ])
// ("./Build/common-rules.xml",
// [ "_Binaries/AltCover.Visualizer.FuncUI/Debug+AnyCPU/netcoreapp3.0/AltCover.Visualizer.dll" ])
("./Build/csharp-rules.xml",
[ "_Binaries/AltCover.DataCollector/Debug+AnyCPU/netstandard2.0/AltCover.DataCollector.dll"
+ "_Binaries/AltCover.FontSupport/Debug+AnyCPU/netstandard2.0/AltCover.FontSupport.dll"
"_Binaries/AltCover.Cake/Debug+AnyCPU/netstandard2.0/AltCover.Cake.dll" ]) ]
|> Seq.iter (fun (ruleset, files) ->
Gendarme.run
@@ -611,41 +656,48 @@ _Target "FxCop" (fun _ ->
standardRules
]
- [ ([ "_Binaries/AltCover.NetCoreApp/Debug+AnyCPU/net45/AltCover.NetCoreApp.exe"
- "_Binaries/AltCover.DataCollector/Debug+AnyCPU/net46/AltCover.DataCollector.dll" ], // TODO netcore support
+ [ (
+ (if String.IsNullOrEmpty(Environment.environVar "APPVEYOR_BUILD_VERSION")
+ then
+ [ "_Binaries/AltCover.FontSupport/Debug+AnyCPU/net472/AltCover.FontSupport.dll"
+ "_Binaries/AltCover/Debug+AnyCPU/net472/AltCover.exe"
+ "_Binaries/AltCover.DataCollector/Debug+AnyCPU/net472/AltCover.DataCollector.dll" ]
+ else // HACK HACK HACK
+ [ "_Binaries/AltCover/Debug+AnyCPU/net472/AltCover.exe"
+ "_Binaries/AltCover.DataCollector/Debug+AnyCPU/net472/AltCover.DataCollector.dll" ]), // TODO netcore support
[],
standardRules)
- ([ "_Binaries/AltCover.Fake/Debug+AnyCPU/net46/AltCover.Fake.dll" ],
+ ([ "_Binaries/AltCover.Fake/Debug+AnyCPU/net472/AltCover.Fake.dll" ],
[],
List.concat [
defaultRules
cantStrongName // can't strongname this as Fake isn't strongnamed
])
- ([ "_Binaries/AltCover.Fake.DotNet.Testing.AltCover/Debug+AnyCPU/net462/AltCover.Fake.DotNet.Testing.AltCover.dll" ],
+ ([ "_Binaries/AltCover.Fake.DotNet.Testing.AltCover/Debug+AnyCPU/net472/AltCover.Fake.DotNet.Testing.AltCover.dll" ],
[],
defaultRules)
- ([ "_Binaries/AltCover.Cake/Debug+AnyCPU/net46/AltCover.Cake.dll"
+ ([ "_Binaries/AltCover.Cake/Debug+AnyCPU/net472/AltCover.Cake.dll"
],
[],
List.concat [
defaultCSharpRules
cantStrongName // can't strongname this as Cake isn't strongnamed
])
- ([ "_Binaries/AltCover.Toolkit/Debug+AnyCPU/net45/AltCover.Toolkit.dll"
- "_Binaries/AltCover.DotNet/Debug+AnyCPU/net45/AltCover.DotNet.dll"],
+ ([ "_Binaries/AltCover.Toolkit/Debug+AnyCPU/net472/AltCover.Toolkit.dll"
+ "_Binaries/AltCover.DotNet/Debug+AnyCPU/net472/AltCover.DotNet.dll"],
[],
defaultRules)
- ([ "_Binaries/AltCover.PowerShell/Debug+AnyCPU/net47/AltCover.PowerShell.dll" ],
+ ([ "_Binaries/AltCover.PowerShell/Debug+AnyCPU/net472/AltCover.PowerShell.dll" ],
[],
defaultRules)
- ([ "_Binaries/AltCover.UICommon/Debug+AnyCPU/net45/AltCover.UICommon.dll"
- "_Binaries/AltCover.Visualizer/Debug+AnyCPU/net45/AltCover.Visualizer.exe"],
+ ([ "_Binaries/AltCover.UICommon/Debug+AnyCPU/net472/AltCover.UICommon.dll"
+ "_Binaries/AltCover.Visualizer/Debug+AnyCPU/net472/AltCover.Visualizer.exe"],
[],
defaultRules)
- ([ "_Binaries/AltCover.Shadow/Debug+AnyCPU/net20/AltCover.Shadow.dll" ],
+ ([ "_Binaries/AltCover.Recorder/Debug+AnyCPU/net20/AltCover.Recorder.dll" ],
[],
"-Microsoft.Naming#CA1703:ResourceStringsShouldBeSpelledCorrectly" :: defaultRules) // Esperanto resources in-line
- ([ "_Binaries/AltCover/Debug+AnyCPU/net45/AltCover.exe" ],
+ ([ "_Binaries/AltCover.Engine/Debug+AnyCPU/net472/AltCover.Engine.dll" ],
[],
List.concat [
defaultRules
@@ -674,7 +726,7 @@ _Target "FxCop" (fun _ ->
reraise())
try
- [ "_Binaries/AltCover.PowerShell/Debug+AnyCPU/net47/AltCover.PowerShell.dll" ]
+ [ "_Binaries/AltCover.PowerShell/Debug+AnyCPU/net472/AltCover.PowerShell.dll" ]
|> FxCop.run
{ FxCop.Params.Create() with
WorkingDirectory = "."
@@ -691,7 +743,16 @@ _Target "FxCop" (fun _ ->
reraise())
// Unit Test
-_Target "UnitTest" ignore
+_Target "UnitTest" (fun _ ->
+
+ printfn "Dump uncovered lines"
+ CreateProcess.fromRawCommand pwsh [ "-NoProfile"; "./Build/dump-uncovered.ps1" ]
+ |> CreateProcess.withWorkingDirectory "."
+ |> Proc.run
+ |> (Actions.AssertResult "pwsh")
+
+ coverageSummary())
+
_Target "UncoveredUnitTest" ignore
_Target "JustUnitTest" (fun _ ->
@@ -706,7 +767,7 @@ _Target "JustUnitTest" (fun _ ->
WorkingDir = "."
ResultSpecs = [ "./_Reports/JustUnitTestReport.xml" ] })
- !!(@"_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net47/AltCover.Recorder.Tests.dll")
+ !!(@"_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net472/AltCover.Recorder.Tests.dll")
|> NUnit3.run (fun p ->
{ p with
ToolPath = nunitConsole
@@ -724,8 +785,10 @@ _Target "JustUnitTest" (fun _ ->
reraise())
_Target "BuildForUnitTestDotNet" (fun _ ->
- !!(@"./*Tests/*tests.core.fsproj")
- |> Seq.filter (fun s -> s.Contains("visualizer") |> not)
+ msbuildDebug "./Recorder.Tests/AltCover.Recorder.Tests.fsproj"
+
+ !!(@"./*Test*/*Tests.fsproj")
+ |> Seq.filter (fun s -> s.Contains("Recorder") |> not) // net20
|> Seq.iter
(DotNet.build (fun p ->
{ p.WithCommon dotnetOptions with
@@ -736,7 +799,7 @@ _Target "BuildForUnitTestDotNet" (fun _ ->
_Target "UnitTestDotNet" (fun _ ->
Directory.ensure "./_Reports"
try
- !!(@"./*Tests/*tests.core.fsproj")
+ !!(@"./*Test*/*Tests.fsproj")
|> Seq.iter
(DotNet.test (fun p ->
{ p.WithCommon dotnetOptions with
@@ -749,8 +812,13 @@ _Target "UnitTestDotNet" (fun _ ->
reraise())
_Target "BuildForCoverlet" (fun _ ->
- !!(@"./*Tests/*tests.core.fsproj")
- |> Seq.filter (fun s -> s.Contains("visualizer") |> not) // incomplete
+ msbuildDebug "./Recorder.Tests/AltCover.Recorder.Tests.fsproj"
+ let l = !!(@"./*Tests/*Tests.fsproj")
+ |> Seq.filter (fun s -> s.Contains("Visualizer") |> not // incomplete
+ && s.Contains("Recorder") |> not) // net20
+ |> Seq.toList
+
+ ("./ValidateGendarmeEmulation/AltCover.ValidateGendarmeEmulation.fsproj" :: l)
|> Seq.iter
(DotNet.build (fun p ->
{ p.WithCommon dotnetOptions with
@@ -761,9 +829,12 @@ _Target "BuildForCoverlet" (fun _ ->
_Target "UnitTestDotNetWithCoverlet" (fun _ ->
Directory.ensure "./_Reports"
try
+ let l = !!(@"./*Tests/*Tests.fsproj")
+ |> Seq.filter (fun s -> s.Contains("Visualizer") |> not) // incomplete
+ |> Seq.toList
+
let xml =
- !!(@"./*Tests/*tests.core.fsproj")
- |> Seq.filter (fun s -> s.Contains("visualizer") |> not) // incomplete
+ ("./ValidateGendarmeEmulation/AltCover.ValidateGendarmeEmulation.fsproj" :: l)
|> Seq.fold (fun l f ->
let here = Path.GetDirectoryName f
let tr = here @@ "TestResults"
@@ -808,13 +879,14 @@ _Target "UnitTestDotNetWithCoverlet" (fun _ ->
_Target "UnitTestWithOpenCover" (fun _ ->
Directory.ensure "./_Reports/_UnitTestWithOpenCover"
- let testFiles =
- !!(@"_Binaries/*Test*/Debug+AnyCPU/net4*/AltCover*Test*.dll")
- |> Seq.filter (fun f -> Path.GetFileName(f) <> "AltCover.Fake.DotNet.Testing.AltCover.dll")
- |> Seq.filter (fun f -> Path.GetFileName(f) <> "AltCover.Recorder.Tests.dll")
- |> Seq.filter (fun s -> s.Contains("Visualizer") |> not) // incomplete
+ let testFiles = "./_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/net472/AltCover.ValidateGendarmeEmulation.dll" ::
+ (!!(@"_Binaries/*Test*/Debug+AnyCPU/net472/AltCover*Test*.dll")
+ |> Seq.filter (fun f -> Path.GetFileName(f) <> "AltCover.Fake.DotNet.Testing.AltCover.dll")
+ |> Seq.filter (fun f -> Path.GetFileName(f) <> "AltCover.Recorder.Tests.dll")
+ |> Seq.filter (fun f -> Path.GetFileName(f) <> "AltCover.Tests.Visualizer.dll")
+ |> Seq.toList)
- let Recorder4Files = !!(@"_Binaries/*Tests/Debug+AnyCPU/net47/*Recorder.Tests.dll")
+ let Recorder4Files = !!(@"_Binaries/*Tests/Debug+AnyCPU/net472/*Recorder.Tests.dll")
let RecorderFiles = !!(@"_Binaries/*Tests/Debug+AnyCPU/net20/AltCover*Test*.dll")
let coverage = Path.getFullName "_Reports/UnitTestWithOpenCover.xml"
@@ -828,7 +900,7 @@ _Target "UnitTestWithOpenCover" (fun _ ->
ExePath = openCoverConsole
TestRunnerExePath = nunitConsole
Filter =
- "+[AltCover]* +[AltCover.Recorder]* +[AltCover.Runner]* +[AltCover.WeakName.Testing]Alt* +[AltCover.Toolkit]* +[AltCover.DotNet]* -[*]AltCover.SolutionRoot -[*]Microsoft.* -[*]System.* -[Sample*]* -[*]ICSharpCode.*"
+ "+[AltCover]* +[AltCover.*]* -[*]Microsoft.* -[*]System.* -[Sample*]* -[*]ICSharpCode.* -[FSharp.Core]* -[Gendarme.*]* -[xunit.*]*"
MergeByHash = true
ReturnTargetCode = Fake.DotNet.Testing.OpenCover.ReturnTargetCodeType.Yes
OptionalArguments =
@@ -845,7 +917,7 @@ _Target "UnitTestWithOpenCover" (fun _ ->
ExePath = openCoverConsole
TestRunnerExePath = nunitConsole
Filter =
- "+[AltCover]* +[AltCover.Recorder]* +[AltCover.Runner]* +[AltCover.WeakName.Testing]Alt* -[*]Microsoft.* -[*]System.* -[Sample*]* -[*]ICSharpCode.*"
+ "+[AltCover.Recorder]* +[AltCover.Recorder.Tests]* -[*]ICSharpCode.* -[*]System.*"
MergeByHash = true
ReturnTargetCode = Fake.DotNet.Testing.OpenCover.ReturnTargetCodeType.Yes
OptionalArguments =
@@ -861,7 +933,7 @@ _Target "UnitTestWithOpenCover" (fun _ ->
ExePath = openCoverConsole
TestRunnerExePath = nunitConsole
Filter =
- "+[AltCover]* +[AltCover.Recorder]* +[AltCover.Runner]* +[AltCover.WeakName.Testing]Alt* -[*]Microsoft.* -[*]System.* -[Sample*]* -[*]ICSharpCode.*"
+ "+[AltCover.Recorder]* +[AltCover.Recorder.Tests]* -[*]ICSharpCode.* -[*]System.*"
MergeByHash = true
ReturnTargetCode = Fake.DotNet.Testing.OpenCover.ReturnTargetCodeType.Yes
OptionalArguments =
@@ -895,15 +967,15 @@ _Target "UnitTestWithAltCover" (fun _ ->
let keyfile = Path.getFullName "Build/SelfTest.snk"
let shadowkeyfile = Path.getFullName "Build/Infrastructure.snk"
let reports = Path.getFullName "./_Reports"
- let altcover = Path.getFullName "./_Binaries/AltCover/Debug+AnyCPU/net45/AltCover.exe"
+ let altcover = Path.getFullName "./_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
let sn = "sn" |> Fake.Core.ProcessUtils.tryFindFileOnPath
// net4x tests -- TODO API
- let testDirectory = Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/net47"
- let weakDir = Path.getFullName "_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/net47"
+ let testDirectory = Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/net472"
+ let weakDir = Path.getFullName "_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/net472"
let Recorder4Dir =
- Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net47"
- let apiDir = Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net47"
+ Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net472"
+ let apiDir = Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net472"
let altReport = reports @@ "UnitTestWithAltCover.xml"
@@ -915,7 +987,7 @@ _Target "UnitTestWithAltCover" (fun _ ->
InputDirectories = [| "."; weakDir; Recorder4Dir; apiDir |]
OutputDirectories =
[| "./__UnitTestWithAltCover"
- weakDir @@ "__WeakNameTestWithAltCover"
+ weakDir @@ "__ValidateGendarmeEmulationWithAltCover"
Recorder4Dir @@ "__RecorderTestWithAltCover"
apiDir @@ "__ApiTestWithAltCover" |]
StrongNameKey = keyfile
@@ -938,11 +1010,11 @@ _Target "UnitTestWithAltCover" (fun _ ->
printfn "Unit test the instrumented net4x code"
try
- [ !!"_Binaries/AltCover.Tests/Debug+AnyCPU/net47/__UnitTestWithAltCover/*.Tests.dll"
- !!"_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net47/__ApiTestWithAltCover/*.Tests.dll"
- !!"_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/net47/__WeakNameTestWithAltCover/Alt*Test*.dll"
- !!"_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net47/__RecorderTestWithAltCover/Alt*Test*.dll"
- !!"_Binaries/AltCover.Tests/Debug+AnyCPU/net461/__UnitTestWithAltCover/*ple2.dll" ]
+ [ !!"_Binaries/AltCover.Tests/Debug+AnyCPU/net472/__UnitTestWithAltCover/*.Tests.dll"
+ !!"_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net472/__ApiTestWithAltCover/*.Tests.dll"
+ !!"_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/net472/__ValidateGendarmeEmulationWithAltCover/Alt*Valid*.dll"
+ !!"_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net472/__RecorderTestWithAltCover/Alt*Test*.dll"
+ !!"_Binaries/AltCover.Tests/Debug+AnyCPU/net472/__UnitTestWithAltCover/*ple2.dll" ]
|> Seq.concat
|> Seq.distinct
|> NUnit3.run (fun p ->
@@ -1000,50 +1072,54 @@ _Target "UnitTestWithAltCoverRunner" (fun _ ->
let keyfile = Path.getFullName "Build/SelfTest.snk"
let shadowkeyfile = Path.getFullName "Build/Infrastructure.snk"
let reports = Path.getFullName "./_Reports"
- let altcover = Path.getFullName "./_Binaries/AltCover/Debug+AnyCPU/net45/AltCover.exe"
+ let altcover = Path.getFullName "./_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
+
+ // Only use
+ let baseFilter = AltCoverFilterTypeSafe
let tests =
[
(
- Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/net47", // test directory
+ Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/net472", // test directory
"./__UnitTestWithAltCoverRunner", // relative output
"UnitTestWithAltCoverRunner.xml", // coverage report
"./_Reports/UnitTestWithAltCoverRunnerReport.xml", // relative nunit reporting
[ Path.getFullName // test assemblies
- "_Binaries/AltCover.Tests/Debug+AnyCPU/net47/__UnitTestWithAltCoverRunner/AltCover.Tests.dll"
+ "_Binaries/AltCover.Tests/Debug+AnyCPU/net472/__UnitTestWithAltCoverRunner/AltCover.Tests.dll"
Path.getFullName
- "_Binaries/AltCover.Tests/Debug+AnyCPU/net47/__UnitTestWithAltCoverRunner/Sample2.dll" ],
- AltCoverFilterTypeSafe,
+ "_Binaries/AltCover.Tests/Debug+AnyCPU/net472/__UnitTestWithAltCoverRunner/Sample2.dll" ],
+ baseFilter,
keyfile
)
(
- Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net47", // test directory
+ Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net472", // test directory
"./__ApiTestWithAltCoverRunner", // relative output
"ApiTestWithAltCoverRunner.xml", // coverage report
"./_Reports/ApiTestWithAltCoverRunnerReport.xml", // relative nunit reporting
[ Path.getFullName // test assemblies
- "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net47/__ApiTestWithAltCoverRunner/AltCover.Api.Tests.dll" ],
- AltCoverFilterTypeSafe,
+ "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/net472/__ApiTestWithAltCoverRunner/AltCover.Api.Tests.dll" ],
+ baseFilter,
keyfile
)
(
- Path.getFullName "_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/net47",
- "./__WeakNameTestWithAltCoverRunner",
- "WeakNameTestWithAltCoverRunner.xml",
- "./_Reports/WeakNameTestWithAltCoverRunnerReport.xml",
+ Path.getFullName "_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/net472",
+ "./__ValidateGendarmeEmulationWithAltCoverRunner",
+ "ValidateGendarmeEmulationWithAltCoverRunner.xml",
+ "./_Reports/ValidateGendarmeEmulationWithAltCoverRunnerReport.xml",
[ Path.getFullName
- "_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/net47/__WeakNameTestWithAltCoverRunner/AltCover.WeakName.Testing.dll" ],
- (fun x -> { x with TypeFilter = TypeSafe.Filters [ TypeSafe.Raw "WeakNameTest"; TypeSafe.Raw "SolutionRoot" ]}) >> AltCoverFilterXTypeSafe,
+ "_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/net472/__ValidateGendarmeEmulationWithAltCoverRunner/AltCover.ValidateGendarmeEmulation.dll" ],
+ // only use // (* >> (fun x -> { x with AssemblyExcludeFilter = TypeSafe.Filters [] }) *),
+ AltCoverFilterXTypeSafe,
keyfile
)
(
- Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net47",
+ Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net472",
"./__RecorderTestWithAltCoverRunner",
"RecorderTestWithAltCoverRunner.xml",
"./_Reports/RecorderTestWithAltCoverRunnerReport.xml",
[ Path.getFullName
- "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net47/__RecorderTestWithAltCoverRunner/AltCover.Recorder.Tests.dll" ],
- AltCoverFilterTypeSafe,
+ "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net472/__RecorderTestWithAltCoverRunner/AltCover.Recorder.Tests.dll" ],
+ baseFilter,
shadowkeyfile
)
(
@@ -1053,20 +1129,11 @@ _Target "UnitTestWithAltCoverRunner" (fun _ ->
"./_Reports/RecorderTest2WithAltCoverRunnerReport.xml",
[ Path.getFullName
"_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/net20/__RecorderTest2WithAltCoverRunner/AltCover.Recorder.Tests.dll" ],
- AltCoverFilterTypeSafe,
+ baseFilter >> (fun p -> { p with AttributeFilter =
+ [TypeSafe.Raw "EntryPoint"]
+ |> p.AttributeFilter.Join}),
shadowkeyfile
)
- (
- Path.getFullName "_Binaries/AltCover.Tests.Visualizer/Debug+AnyCPU/net471",
- "./__GTKVTestWithAltCoverRunner",
- "GTKVTestWithAltCoverRunner.xml",
- "./_Reports/GTKVTestWithAltCoverRunnerReport.xml",
- [ Path.getFullName
- "_Binaries/AltCover.Tests.Visualizer/Debug+AnyCPU/net471/__GTKVTestWithAltCoverRunner/AltCover.Tests.Visualizer.dll" ],
- (fun x -> { x with TypeFilter = TypeSafe.Filters [ TypeSafe.Raw "Gui" ]
- AssemblyFilter = TypeSafe.Filters [ TypeSafe.Raw "\\-sharp" ]}) >> AltCoverFilterTypeSafe,
- keyfile
- )
]
tests
@@ -1122,8 +1189,7 @@ _Target "UnitTestWithAltCoverRunner" (fun _ ->
let xmlreports =
pester :: (tests
- |> List.map (fun (_, _, report, _, _, _, _) -> reports @@ report)
- |> List.filter (fun f -> f.Contains("GTKV") |> not))
+ |> List.map (fun (_, _, report, _, _, _, _) -> reports @@ report))
ReportGenerator.generateReports (fun p ->
{ p with
@@ -1172,7 +1238,7 @@ _Target "UnitTestWithAltCoverCore" (fun _ ->
Directory.ensure "./_Reports/_UnitTestWithAltCover"
let keyfile = Path.getFullName "Build/SelfTest.snk"
let reports = Path.getFullName "./_Reports"
- let altcover = Path.getFullName "./_Binaries/AltCover/Debug+AnyCPU/netcoreapp2.0/AltCover.dll"
+ let altcover = Path.getFullName "./_Binaries/AltCover/Release+AnyCPU/netcoreapp2.0/AltCover.dll"
let tests =
[
@@ -1180,7 +1246,7 @@ _Target "UnitTestWithAltCoverCore" (fun _ ->
Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/netcoreapp3.0", // testDirectory
Path.getFullName "Tests/_Binaries/AltCover.Tests/Debug+AnyCPU/netcoreapp3.0", // output
reports @@ "UnitTestWithAltCoverCore.xml", // report
- "altcover.tests.core.fsproj", // project
+ "AltCover.Tests.fsproj", // project
Path.getFullName "Tests", // workingDirectory
AltCoverFilter >> (fun p -> { p with AssemblyExcludeFilter = [ "?^AltCover$" ]}) // filter
)
@@ -1188,7 +1254,7 @@ _Target "UnitTestWithAltCoverCore" (fun _ ->
Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/netcoreapp3.0",
Path.getFullName "Recorder.Tests/_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/netcoreapp3.0",
reports @@ "RecorderTestWithAltCoverCore.xml",
- "altcover.recorder.tests.core.fsproj",
+ "AltCover.Recorder.Tests.fsproj",
Path.getFullName "Recorder.Tests",
AltCoverFilterG
)
@@ -1196,17 +1262,17 @@ _Target "UnitTestWithAltCoverCore" (fun _ ->
Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/netcoreapp3.0", // testDirectory
Path.getFullName "AltCover.Api.Tests/_Binaries/AltCover.Api.Tests/Debug+AnyCPU/netcoreapp3.0", // output
reports @@ "ApiUnitTestWithAltCoverCore.xml", // report
- "altcover.api.tests.core.fsproj", // project
+ "AltCover.Api.Tests.fsproj", // project
Path.getFullName "AltCover.Api.Tests", // workingDirectory
AltCoverApiFilter // filter
)
(
- Path.getFullName "_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/netcoreapp3.0", // testDirectory
- Path.getFullName "WeakNameTests/_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/netcoreapp3.0", // output
- reports @@ "WeakNameUnitTestWithAltCoverCore.xml", // report
- "altcover.weaknametests.core.fsproj", // project
- Path.getFullName "WeakNameTests", // workingDirectory
- (fun p -> { p with TypeFilter = [ "> AltCoverFilter // filter
+ Path.getFullName "_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/netcoreapp3.0", // testDirectory
+ Path.getFullName "AltCover.ValidateGendarmeEmulation/_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/netcoreapp3.0", // output
+ reports @@ "ValidateGendarmeEmulationUnitTestWithAltCoverCore.xml", // report
+ "AltCover.ValidateGendarmeEmulation.fsproj", // project
+ Path.getFullName "ValidateGendarmeEmulations", // workingDirectory
+ (fun p -> { p with TypeFilter = [ "> AltCoverFilter // filter
)
]
@@ -1264,7 +1330,7 @@ _Target "UnitTestWithAltCoverCoreRunner" (fun _ ->
let keyfile = Path.getFullName "Build/SelfTest.snk"
let reports = Path.getFullName "./_Reports"
let altcover =
- Path.getFullName "./_Binaries/AltCover/Debug+AnyCPU/netcoreapp2.0/AltCover.dll"
+ Path.getFullName "./_Binaries/AltCover/Release+AnyCPU/netcoreapp2.0/AltCover.dll"
let tests =
[
@@ -1272,24 +1338,24 @@ _Target "UnitTestWithAltCoverCoreRunner" (fun _ ->
Path.getFullName "_Binaries/AltCover.Tests/Debug+AnyCPU/netcoreapp3.0", // testDirectory
Path.getFullName "Tests/_Binaries/AltCover.Tests/Debug+AnyCPU/netcoreapp3.0", // output
reports @@ "UnitTestWithAltCoverCoreRunner.xml", // report
- Path.getFullName "./Tests/altcover.tests.core.fsproj"
+ Path.getFullName "./Tests/AltCover.Tests.fsproj"
)
(
Path.getFullName "_Binaries/AltCover.Api.Tests/Debug+AnyCPU/netcoreapp3.0", // testDirectory
Path.getFullName "AltCover.Api.Tests/_Binaries/AltCover.Api.Tests/Debug+AnyCPU/netcoreapp3.0", // output
reports @@ "ApiTestWithAltCoverCoreRunner.xml", // report
- Path.getFullName "./AltCover.Api.Tests/altcover.api.tests.core.fsproj"
+ Path.getFullName "./AltCover.Api.Tests/AltCover.Api.Tests.fsproj"
)
(
Path.getFullName "_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/netcoreapp3.0",
Path.getFullName "Recorder.Tests/_Binaries/AltCover.Recorder.Tests/Debug+AnyCPU/netcoreapp3.0",
reports @@ "RecorderTestWithAltCoverCoreRunner.xml",
- Path.getFullName "./Recorder.Tests/altcover.recorder.tests.core.fsproj")
+ Path.getFullName "./Recorder.Tests/AltCover.Recorder.Tests.fsproj")
(
- Path.getFullName "_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/netcoreapp3.0", // testDirectory
- Path.getFullName "WeakNameTests/_Binaries/AltCover.WeakName.Testing/Debug+AnyCPU/netcoreapp3.0", // output
- reports @@ "WeakNameUnitTestWithAltCoverCoreRunner.xml", // report
- Path.getFullName "WeakNameTests/altcover.weaknametests.core.fsproj") // project
+ Path.getFullName "_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/netcoreapp3.0", // testDirectory
+ Path.getFullName "ValidateGendarmeEmulation/_Binaries/AltCover.ValidateGendarmeEmulation/Debug+AnyCPU/netcoreapp3.0", // output
+ reports @@ "ValidateGendarmeEmulationUnitTestWithAltCoverCoreRunner.xml", // report
+ Path.getFullName "ValidateGendarmeEmulation/AltCover.ValidateGendarmeEmulation.fsproj") // project
]
tests
@@ -1302,7 +1368,7 @@ _Target "UnitTestWithAltCoverCoreRunner" (fun _ ->
({ Primitive.PrepareOptions.Create() with
XmlReport = report
OutputDirectories = [| output |]
- TypeFilter = [ "SolutionRoot"; "Expecto"; "WeakNameTests" ]
+ TypeFilter = [ "SolutionRoot"; "Expecto" ]
VisibleBranches = true
StrongNameKey = keyfile
SingleVisit = true
@@ -1355,8 +1421,8 @@ _Target "OperationalTest" ignore
_Target "FSharpTypes" (fun _ ->
Directory.ensure "./_Reports"
let simpleReport = (Path.getFullName "./_Reports") @@ ("AltCoverFSharpTypes.xml")
- let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45"
- let sampleRoot = Path.getFullName "_Binaries/Sample2/Debug+AnyCPU/net461"
+ let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472"
+ let sampleRoot = Path.getFullName "_Binaries/Sample2/Debug+AnyCPU/net472"
let instrumented = "__FSharpTypes"
let prep =
@@ -1364,7 +1430,7 @@ _Target "FSharpTypes" (fun _ ->
({ Primitive.PrepareOptions.Create() with
XmlReport = simpleReport
OutputDirectories = [| "./" + instrumented |]
- AssemblyFilter = [ "Adapter"; "nunit" ]
+ AssemblyFilter = [ "Adapter"; "nunit"; "FSharp" ]
TypeFilter = [ "System\\."; "Microsoft\\." ]
InPlace = false
ReportFormat = "NCover"
@@ -1386,7 +1452,7 @@ _Target "FSharpTypesDotNet" (fun _ -> // obsolete
// Test the --inplace operation
Shell.cleanDir sampleRoot
- "sample2.core.fsproj"
+ "Sample2.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample2") with
Configuration = DotNet.BuildConfiguration.Debug
@@ -1414,7 +1480,7 @@ _Target "FSharpTypesDotNet" (fun _ -> // obsolete
Assert.That(Path.Combine(sampleRoot, "__Saved") |> Directory.Exists)
printfn "Execute the instrumented tests"
- "sample2.core.fsproj"
+ "Sample2.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample2") with
Configuration = DotNet.BuildConfiguration.Debug
@@ -1433,7 +1499,7 @@ _Target "FSharpTests" (fun _ ->
// Test the --inplace operation
Shell.cleanDir sampleRoot
- "sample7.core.fsproj"
+ "Sample7.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample7") with
Configuration = DotNet.BuildConfiguration.Debug } |> testWithCLIArguments)
@@ -1458,7 +1524,7 @@ _Target "FSharpTests" (fun _ ->
printfn "Execute the instrumented tests"
- let sample7 = Path.getFullName "./Sample7/sample7.core.fsproj"
+ let sample7 = Path.getFullName "./Sample7/Sample7.fsproj"
let (dotnetexe, args) = defaultDotNetTestCommandLine None sample7
let collect =
@@ -1505,7 +1571,7 @@ _Target "FSharpTypesDotNetRunner" (fun _ ->
Actions.ValidateFSharpTypes simpleReport [ "main" ]
printfn "Execute the instrumented tests"
- let sample2 = Path.getFullName "./Sample2/sample2.core.fsproj"
+ let sample2 = Path.getFullName "./Sample2/Sample2.fsproj"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp2.1") sample2
let collect =
@@ -1538,7 +1604,7 @@ _Target "FSharpTypesDotNetCollecter" (fun _ ->
printfn "Build and test normally"
Shell.cleanDir sampleRoot
- "sample2.core.fsproj"
+ "Sample2.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample2") with
Configuration = DotNet.BuildConfiguration.Debug } |> testWithCLIArguments)
@@ -1567,7 +1633,7 @@ _Target "FSharpTypesDotNetCollecter" (fun _ ->
Assert.That(Path.Combine(sampleRoot, "__Saved") |> Directory.Exists)
printfn "Execute the instrumented tests"
- "sample2.core.fsproj"
+ "Sample2.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample2") with
Configuration = DotNet.BuildConfiguration.Debug
@@ -1592,22 +1658,22 @@ _Target "FSharpTypesDotNetCollecter" (fun _ ->
_Target "BasicCSharp"
(fun _ ->
Actions.SimpleInstrumentingRun "_Binaries/Sample1/Debug+AnyCPU/net20"
- "_Binaries/AltCover/Debug+AnyCPU/net45" "BasicCSharp")
+ "_Binaries/AltCover/Release+AnyCPU/net472" "BasicCSharp")
_Target "BasicCSharpMono"
(fun _ ->
Actions.SimpleInstrumentingRun "_Mono/Sample1"
- "_Binaries/AltCover/Debug+AnyCPU/net45" "BasicCSharpMono")
+ "_Binaries/AltCover/Release+AnyCPU/net472" "BasicCSharpMono")
_Target "BasicCSharpUnderMono" (fun _ ->
monoOnWindows
|> Actions.SimpleInstrumentingRunUnderMono "_Binaries/Sample1/Debug+AnyCPU/net20"
- "_Binaries/AltCover/Debug+AnyCPU/net45" "BasicCSharpUnderMono")
+ "_Binaries/AltCover/Release+AnyCPU/net472" "BasicCSharpUnderMono")
_Target "BasicCSharpMonoUnderMono" (fun _ ->
monoOnWindows
|> Actions.SimpleInstrumentingRunUnderMono "_Mono/Sample1"
- "_Binaries/AltCover/Debug+AnyCPU/net45" "BasicCSharpMono")
+ "_Binaries/AltCover/Release+AnyCPU/net472" "BasicCSharpMono")
_Target "CSharpMonoWithDotNet" (fun _ ->
Directory.ensure "./_Reports"
@@ -1655,7 +1721,7 @@ _Target "CSharpDotNetWithDotNet" (fun _ ->
Save = false })
|> AltCoverCommand.Prepare
{ AltCoverCommand.Options.Create prep with
- ToolPath = "_Binaries/AltCover/Debug+AnyCPU/netcoreapp2.0/AltCover.dll"
+ ToolPath = "_Binaries/AltCover/Release+AnyCPU/netcoreapp2.0/AltCover.dll"
ToolType = dotnetAltcover
WorkingDirectory = "." }
|> AltCoverCommand.run
@@ -1667,7 +1733,7 @@ _Target "CSharpDotNetWithDotNet" (fun _ ->
_Target "CSharpDotNetWithFramework" (fun _ ->
Directory.ensure "./_Reports"
let simpleReport = (Path.getFullName "./_Reports") @@ ("CSharpDotNetWithFramework.xml")
- let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45"
+ let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472"
let sampleRoot = Path.getFullName "_Binaries/Sample1/Debug+AnyCPU/netcoreapp2.0"
let instrumented =
Path.getFullName "_Binaries/Sample1/__Instrumented.CSharpDotNetWithFramework"
@@ -1694,7 +1760,7 @@ _Target "CSharpDotNetWithFramework" (fun _ ->
_Target "SelfTest" (fun _ ->
Directory.ensure "./_Reports/_Instrumented"
- let targetDir = "_Binaries/AltCover.Tests/Debug+AnyCPU/net47"
+ let targetDir = "_Binaries/AltCover.Tests/Debug+AnyCPU/net472"
let reports = Path.getFullName "./_Reports"
let report = reports @@ "OpenCoverSelfTest.xml"
let altReport = reports @@ "AltCoverSelfTest.xml"
@@ -1725,7 +1791,7 @@ _Target "SelfTest" (fun _ ->
{ p with
WorkingDir = targetDir
ExePath = openCoverConsole
- TestRunnerExePath = "./_Binaries/AltCover/Debug+AnyCPU/net45/AltCover.exe"
+ TestRunnerExePath = "./_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
Filter = OpenCoverFilter
MergeByHash = true
OptionalArguments =
@@ -1753,9 +1819,9 @@ _Target "SelfTest" (fun _ ->
|> AltCoverFilter)
|> AltCoverCommand.Prepare
{ AltCoverCommand.Options.Create prep with
- ToolPath = "_Binaries/AltCover.Tests/Debug+AnyCPU/net47/__SelfTest/AltCover.exe"
+ ToolPath = "_Binaries/AltCover.Tests/Debug+AnyCPU/net472/__SelfTest/AltCover.exe"
ToolType = frameworkAltcover
- WorkingDirectory = "_Binaries/AltCover.Tests/Debug+AnyCPU/net47" }
+ WorkingDirectory = "_Binaries/AltCover.Tests/Debug+AnyCPU/net472" }
|> AltCoverCommand.run
ReportGenerator.generateReports (fun p ->
@@ -1774,7 +1840,7 @@ _Target "RecordResumeTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
test
- | _ -> Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/AltCover.exe"
+ | _ -> Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
let prep =
AltCover.PrepareOptions.Primitive
@@ -1852,7 +1918,7 @@ _Target "RecordResumeTrackingTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
test
- | _ -> Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/AltCover.exe"
+ | _ -> Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
let prep =
AltCover.PrepareOptions.Primitive
@@ -2000,7 +2066,7 @@ _Target "RecordResumeTestDotNet" (fun _ ->
_Target "RecordResumeTestUnderMono" (fun _ -> // Fails : System.EntryPointNotFoundException: CreateZStream
Directory.ensure "./_Reports"
let simpleReport = (Path.getFullName "./_Reports") @@ ("RecordResumeTestUnderMono.xml")
- let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45"
+ let binRoot = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472"
let sampleRoot = Path.getFullName "_Binaries/Sample8/Debug+AnyCPU/net20"
let instrumented = "__RecordResumeTestUnderMono"
@@ -2080,46 +2146,36 @@ _Target "RecordResumeTestUnderMono" (fun _ -> // Fails : System.EntryPointNotFo
// Packaging
_Target "Packaging" (fun _ ->
- let AltCover = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/AltCover.exe"
+ let AltCover = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/AltCover.exe"
+ let engine = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/AltCover.Engine.dll"
let config = AltCover + ".config"
+ let manatee =
+ Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/Manatee.Json.dll"
let fox =
- Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/BlackFox.CommandLine.dll"
- let fscore = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/FSharp.Core.dll"
+ Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/BlackFox.CommandLine.dll"
+ let fscore = Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/FSharp.Core.dll"
let options =
- Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/Mono.Options.dll"
+ Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/Mono.Options.dll"
let recorder =
- Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net45/AltCover.Recorder.dll"
- let posh =
- Path.getFullName
- "_Binaries/AltCover.PowerShell/Release+AnyCPU/net47/AltCover.PowerShell.dll"
+ Path.getFullName "_Binaries/AltCover/Release+AnyCPU/net472/AltCover.Recorder.dll"
let poshHelp =
Path.getFullName
- "_Binaries/AltCover.PowerShell/Release+AnyCPU/net47/AltCover.PowerShell.dll-Help.xml"
+ "_Binaries/AltCover.PowerShell/Release+AnyCPU/netstandard2.0/AltCover.PowerShell.dll-Help.xml"
if (poshHelp |> File.Exists |> not) && (Environment.isWindows |> not)
then File.WriteAllText(poshHelp, "DUMMY TEXT")
- let toolkit =
- Path.getFullName "_Binaries/AltCover.Toolkit/Release+AnyCPU/net45/AltCover.Toolkit.dll"
- let dotnet =
- Path.getFullName "_Binaries/AltCover.DotNet/Release+AnyCPU/net45/AltCover.DotNet.dll"
- let cake =
- Path.getFullName "_Binaries/AltCover.Cake/Release+AnyCPU/net46/AltCover.Cake.dll"
- let fake =
- Path.getFullName "_Binaries/AltCover.Fake/Release+AnyCPU/net46/AltCover.Fake.dll"
- let fake2 =
- Path.getFullName
- "_Binaries/AltCover.Fake.DotNet.Testing.AltCover/Release+AnyCPU/net462/AltCover.Fake.DotNet.Testing.AltCover.dll"
+
let vis =
Path.getFullName
- "_Binaries/AltCover.Visualizer/Release+AnyCPU/net45/AltCover.Visualizer.exe"
+ "_Binaries/AltCover.Visualizer/Release+AnyCPU/net472/AltCover.Visualizer.exe"
let uic =
Path.getFullName
- "_Binaries/AltCover.Visualizer/Release+AnyCPU/net45/AltCover.UICommon.dll"
+ "_Binaries/AltCover.Visualizer/Release+AnyCPU/net472/AltCover.UICommon.dll"
let packable = Path.getFullName "./_Binaries/README.html"
let libFiles path =
Seq.concat
- [ !!"./_Binaries/AltCover/Release+AnyCPU/net45/Mono.C*.dll"
- !!"./_Binaries/AltCover/Release+AnyCPU/net45/Newton*.dll" ]
+ [ !!"./_Binaries/AltCover/Release+AnyCPU/net472/Mono.C*.dll"
+ !!"./_Binaries/AltCover/Release+AnyCPU/net472/Newton*.dll" ]
|> Seq.map (fun f -> (f |> Path.getFullName, Some path, None))
|> Seq.toList
@@ -2132,37 +2188,32 @@ _Target "Packaging" (fun _ ->
(Path.getFullName "./AltCover.UICommon/logo.*", Some "", None) ]
let applicationFiles =
- [ (AltCover, Some "tools/net45", None)
- (config, Some "tools/net45", None)
- (recorder, Some "tools/net45", None)
- (posh, Some "tools/net45", None)
- (poshHelp, Some "tools/net45", None)
- (toolkit, Some "tools/net45", None)
- (vis, Some "tools/net45", None)
- (uic, Some "tools/net45", None)
- (fscore, Some "tools/net45", None)
- (fox, Some "tools/net45", None)
- (options, Some "tools/net45", None)
+ [ (AltCover, Some "tools/net472", None)
+ (engine, Some "tools/net472", None)
+ (config, Some "tools/net472", None)
+ (recorder, Some "tools/net472", None)
+ (vis, Some "tools/net472", None)
+ (uic, Some "tools/net472", None)
+ (fscore, Some "tools/net472", None)
+ (manatee, Some "tools/net472", None)
+ (fox, Some "tools/net472", None)
+ (options, Some "tools/net472", None)
(packable, Some "", None) ]
let apiFiles =
- [ (AltCover, Some "lib/net45", None)
- (config, Some "lib/net45", None)
- (recorder, Some "lib/net45", None)
- (posh, Some "lib/net45", None)
- (poshHelp, Some "lib/net45", None)
- (toolkit, Some "lib/net45", None)
- (dotnet, Some "lib/net45", None)
- (cake, Some "lib/net45", None)
- (fake, Some "lib/net45", None)
- (fscore, Some "lib/net45", None)
- (fox, Some "lib/net45", None)
- (options, Some "lib/net45", None)
+ [ (AltCover, Some "lib/net472", None)
+ (engine, Some "lib/net472", None)
+ (config, Some "lib/net472", None)
+ (recorder, Some "lib/net472", None)
+ (fscore, Some "lib/net472", None)
+ (manatee, Some "lib/net472", None)
+ (fox, Some "lib/net472", None)
+ (options, Some "lib/net472", None)
(packable, Some "", None) ]
let resourceFiles path =
- [ "_Binaries/AltCover/Release+AnyCPU/net45"
- "_Binaries/AltCover.Visualizer/Release+AnyCPU/net45" ]
+ [ "_Binaries/AltCover/Release+AnyCPU/net472"
+ "_Binaries/AltCover.Visualizer/Release+AnyCPU/net472" ]
|> List.map (fun f ->
Directory.GetDirectories(Path.getFullName f)
|> Seq.collect (fun d -> Directory.GetFiles(d, "*.resources.dll")))
@@ -2262,26 +2313,18 @@ _Target "Packaging" (fun _ ->
None))
|> Seq.toList
- let publishapi = (Path.getFullName "./_Publish.api").Length
+ let publishapi = (Path.getFullName "./_Publish").Length
let netstdFiles where =
- (!!"./_Publish.api/**/*.*")
- |> Seq.filter (fun f ->
- let n = f |> Path.GetFileName
- n.StartsWith("System.", StringComparison.OrdinalIgnoreCase) |> not)
+ (!!"./_Publish/**/*.*")
|> Seq.map (fun x ->
(x,
Some(where + Path.GetDirectoryName(x).Substring(publishapi).Replace("\\", "/")),
None))
|> Seq.toList
- let apiNetcoreAppFiles where =
- (!!"./_Binaries/AltCover.NetCoreApp/Release+AnyCPU/netcoreapp2.0/AltCover.NetCoreApp.*")
- |> Seq.map (fun x -> (x, Some(where + Path.GetFileName x), None))
- |> Seq.toList
-
let globalFiles =
- (!!"./_Binaries/global-altcover/Release+AnyCPU/netcoreapp2.1/global-altcover.*")
+ (!!"./_Binaries/AltCover/Release+AnyCPU/netcoreapp2.1/AltCover.*")
|> Seq.map
(fun x -> (x, Some("tools/netcoreapp2.1/any/" + Path.GetFileName x), None))
|> Seq.toList
@@ -2302,7 +2345,7 @@ _Target "Packaging" (fun _ ->
|> Seq.toList
let auxFiles =
- (!!"./_Binaries/global-altcover/Release+AnyCPU/netcoreapp2.1/*.xml")
+ (!!"./_Binaries/AltCover/Release+AnyCPU/netcoreapp2.1/*.xml")
|> Seq.map
(fun x -> (x, Some("tools/netcoreapp2.1/any/" + Path.GetFileName x), None))
|> Seq.toList
@@ -2310,8 +2353,8 @@ _Target "Packaging" (fun _ ->
printfn "Executing on %A" Environment.OSVersion
[ (List.concat
[ applicationFiles
- resourceFiles "tools/net45/"
- libFiles "tools/net45/"
+ resourceFiles "tools/net472/"
+ libFiles "tools/net472/"
netcoreFiles "tools/netcoreapp2.0/"
poshFiles "tools/netcoreapp2.0/"
poshHelpFiles "tools/netcoreapp2.0/"
@@ -2321,9 +2364,8 @@ _Target "Packaging" (fun _ ->
(List.concat
[ apiFiles
- resourceFiles "lib/net45/"
- libFiles "lib/net45/"
- apiNetcoreAppFiles "lib/netstandard2.0/"
+ resourceFiles "lib/net472/"
+ libFiles "lib/net472/"
netstdFiles "lib/netstandard2.0"
cakeFiles "lib/netstandard2.0/"
dataFiles "lib/netstandard2.0/"
@@ -2359,15 +2401,10 @@ _Target "Packaging" (fun _ ->
housekeepingVis ], [], "_Packaging.visualizer",
"./_Generated/altcover.visualizer.nuspec", "altcover.visualizer")
- let frameworkFake2Files =
- [ (fake2, Some "lib/net45", None)
- (fox, Some "lib/net45", None) ]
-
(List.concat
[ fake2Files "lib/netstandard2.0/"
fox2Files "lib/netstandard2.0/"
[ (packable, Some "", None) ]
- frameworkFake2Files
housekeeping ],
[ // make these explicit, as this package implies an opt-in
("Fake.Core.Environment", "5.18.1")
@@ -2381,7 +2418,7 @@ _Target "Packaging" (fun _ ->
Directory.ensure workingDir
Directory.ensure outputPath
- NuGet (fun p ->
+ NuGetPack (fun p ->
{ p with
Authors = [ "Steve Gilham" ]
Project = project
@@ -2414,7 +2451,7 @@ _Target "Packaging" (fun _ ->
_Target "PrepareFrameworkBuild" ignore
_Target "PrepareDotNetBuild" (fun _ ->
- let netcoresource = Path.getFullName "./AltCover/altcover.core.fsproj"
+ let netcoresource = Path.getFullName "./AltCover/AltCover.fsproj"
let publish = Path.getFullName "./_Publish"
DotNet.publish (fun options ->
@@ -2422,17 +2459,12 @@ _Target "PrepareDotNetBuild" (fun _ ->
OutputPath = Some publish
Configuration = DotNet.BuildConfiguration.Release
Framework = Some "netcoreapp2.0" }) netcoresource
- DotNet.publish (fun options ->
- { options with
- OutputPath = Some(publish + ".api")
- Configuration = DotNet.BuildConfiguration.Release
- Framework = Some "netstandard2.0" }) netcoresource
DotNet.publish (fun options ->
{ options with
OutputPath = Some(publish + ".visualizer")
Configuration = DotNet.BuildConfiguration.Release
Framework = Some "netcoreapp2.1" })
- (Path.getFullName "./AltCover.Avalonia/altcover.avalonia.fsproj")
+ (Path.getFullName "./AltCover.Avalonia/AltCover.Avalonia.fsproj")
// dotnet tooling mods
[ ("DotnetTool", "./_Generated/altcover.global.nuspec",
@@ -2485,16 +2517,62 @@ _Target "Deployment" ignore
_Target "Unpack" (fun _ ->
!!"./_Pack*/*.nupkg"
|> Seq.iter (fun nugget ->
- let packdir = Path.GetDirectoryName nugget
+ let packdir = Path.GetDirectoryName nugget
let unpack = Path.getFullName (packdir @@ "Unpack")
- System.IO.Compression.ZipFile.ExtractToDirectory(nugget, unpack)))
+ System.IO.Compression.ZipFile.ExtractToDirectory(nugget, unpack))
+
+ // C# style API documentation
+ let packages =
+ let xml =
+ [
+ "./AltCover.PowerShell/AltCover.PowerShell.fsproj"
+ "./AltCover.Cake/AltCover.Cake.csproj"
+ ]
+ |> List.map (Path.getFullName >> XDocument.Load)
+ xml
+ |> List.map (fun x -> x.Descendants(XName.Get("PackageReference")))
+ |> Seq.concat
+ |> Seq.map
+ (fun x ->
+ let incl = x.Attribute(XName.Get("Include"))
+ let update = x.Attribute(XName.Get("Update"))
+ let version = x.Attribute(XName.Get("Version")).Value
+ if incl |> isNull
+ then (update.Value, version)
+ else (incl.Value, version))
+ |> Seq.distinctBy fst
+ |> Map.ofSeq
+ let packageVersionPart (p : string) = nugetCache +
+ "/" + p.ToLowerInvariant() + "/" + (packages.Item p) +
+ "/lib/netstandard2.0/"
+
+ let unpacked = "./_Packaging.api/Unpack/lib/netstandard2.0/"
+ Shell.copyFile (unpacked + "Cake.Core.dll")
+ ((packageVersionPart "Cake.Core") + "Cake.Core.dll")
+ Shell.copyFile (unpacked + "Cake.Common.dll")
+ ((packageVersionPart "Cake.Common") + "Cake.Common.dll")
+ Shell.copyFile (unpacked + "System.Management.Automation.dll")
+ ((packageVersionPart "PowerShellStandard.Library") + "System.Management.Automation.dll")
+
+ [
+ "AltCover.Cake"
+ "AltCover.DotNet"
+ "AltCover.Engine" // beware static linkage -- maybe copy from debug?
+ "AltCover.PowerShell"
+ "AltCover.Toolkit"
+ ]
+ |> List.iter (fun n ->
+ Shell.copyFile (unpacked + n + ".xml") ("./_Binaries/" + n + "/Release+AnyCPU/netstandard2.0/" + n + ".xml")
+ Actions.RunDotnet dotnetOptions "xmldocmd"
+ (unpacked + n + ".dll ./_Documentation/" + n + " --visibility public --skip-unbrowsable --clean")
+ ("documenting " + n)))
_Target "WindowsPowerShell" (fun _ ->
Directory.ensure "./_Documentation"
let v = (!Version).Split([| '-' |]).[0]
CreateProcess.fromRawCommand "powershell.exe"
- [ "-NoProfile"; "./Build/powershell.ps1"; "-ACV"; v ]
+ [ "-NoProfile"; "./Build/pester.ps1"; "-ACV"; v; "-ReportName"; "PoshReport"; "-FolderName"; "Unpack" ]
|> CreateProcess.withWorkingDirectory "."
|> Proc.run
|> (Actions.AssertResult "powershell"))
@@ -2517,7 +2595,7 @@ _Target "Pester" (fun _ ->
InputDirectories = [ i ]
StrongNameKey = key
TypeFilter = [ "System\\."; "DotNet" ]
- AssemblyFilter = [ "^AltCover$"; "Recorder"; "DataCollector" ]
+ AssemblyFilter = [ "AltCover.Engine"; "Recorder"; "DataCollector"; "FSharp" ]
InPlace = true
ReportFormat = "OpenCover"
Save = true
@@ -2530,7 +2608,7 @@ _Target "Pester" (fun _ ->
|> AltCoverCommand.run
printfn "Execute the instrumented tests"
- CreateProcess.fromRawCommand pwsh [ "-NoProfile"; "./Build/pester.ps1"; "-ACV"; v ]
+ CreateProcess.fromRawCommand pwsh [ "-NoProfile"; "./Build/pester.ps1"; "-ACV"; v; "-ReportName"; "PesterReport"; "-FolderName"; "Module" ]
|> CreateProcess.withWorkingDirectory "."
|> Proc.run
|> (Actions.AssertResult "pwsh")
@@ -2562,7 +2640,7 @@ _Target "SimpleReleaseTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
Path.GetDirectoryName test
- | _ -> Path.getFullName "_Packaging/Unpack/tools/net45"
+ | _ -> Path.getFullName "_Packaging/Unpack/tools/net472"
Actions.SimpleInstrumentingRun "_Binaries/Sample1/Debug+AnyCPU/net20" unpack
"SimpleReleaseTest")
@@ -2573,7 +2651,7 @@ _Target "SimpleZipReleaseTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
Path.GetDirectoryName test
- | _ -> Path.getFullName "_Packaging/Unpack/tools/net45"
+ | _ -> Path.getFullName "_Packaging/Unpack/tools/net472"
let reportSigil = "SimpleZipReleaseTest"
@@ -2621,7 +2699,7 @@ _Target "SimpleMonoReleaseTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
Path.GetDirectoryName test
- | _ -> Path.getFullName "_Packaging/Unpack/tools/net45"
+ | _ -> Path.getFullName "_Packaging/Unpack/tools/net472"
Actions.SimpleInstrumentingRun "_Mono/Sample1" unpack "SimpleMonoReleaseTest")
@@ -2632,7 +2710,7 @@ _Target "ReleaseDotNetWithFramework" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
Path.GetDirectoryName test
- | _ -> Path.getFullName "_Packaging/Unpack/tools/net45"
+ | _ -> Path.getFullName "_Packaging/Unpack/tools/net472"
let simpleReport =
(Path.getFullName "./_Reports") @@ ("ReleaseDotNetWithFramework.xml")
@@ -2743,7 +2821,7 @@ _Target "ReleaseFSharpTypesDotNetRunner" (fun _ ->
Actions.ValidateFSharpTypes x [ "main" ]
printfn "Execute the instrumented tests"
- let sample2 = Path.getFullName "./Sample2/sample2.core.fsproj"
+ let sample2 = Path.getFullName "./Sample2/Sample2.fsproj"
let runner = Path.getFullName "_Packaging/Unpack/tools/netcoreapp2.0/AltCover.dll"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp2.1") sample2
@@ -2783,7 +2861,8 @@ _Target "ReleaseFSharpTypesX86DotNetRunner" (fun _ ->
|> printfn "%A"
printfn "Build the sample2 code as x86"
- "./altcover.core.sln"
+ "./AltCover.sln"
+ |> Path.GetFullPath
|> DotNet.build (fun p ->
{ p with
Configuration = DotNet.BuildConfiguration.Debug
@@ -2814,7 +2893,7 @@ _Target "ReleaseFSharpTypesX86DotNetRunner" (fun _ ->
|> AltCoverCommand.run
Actions.ValidateFSharpTypes x [ "main" ]
printfn "Execute the instrumented tests"
- let sample2 = Path.getFullName "./Sample2/sample2.core.fsproj"
+ let sample2 = Path.getFullName "./Sample2/Sample2.fsproj"
// Run
let (dotnetexe, args) =
@@ -2870,7 +2949,7 @@ _Target "ReleaseXUnitFSharpTypesDotNet" (fun _ ->
Actions.ValidateFSharpTypes x [ "main" ]
printfn "Execute the instrumented tests"
- "sample4.core.fsproj"
+ "Sample4.fsproj"
|> DotNet.test (fun o ->
{ o.WithCommon(withWorkingDirectoryVM "Sample4") with
Configuration = DotNet.BuildConfiguration.Debug
@@ -2909,7 +2988,7 @@ _Target "ReleaseXUnitFSharpTypesDotNetRunner" (fun _ ->
Actions.ValidateFSharpTypes x [ "main" ]
printfn "Execute the instrumented tests"
- let sample4 = Path.getFullName "./Sample4/sample4.core.fsproj"
+ let sample4 = Path.getFullName "./Sample4/Sample4.fsproj"
let runner = Path.getFullName "_Packaging/Unpack/tools/netcoreapp2.0/AltCover.dll"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp2.1") sample4
@@ -2958,7 +3037,7 @@ _Target "OpenCoverForPester" (fun _ ->
|> AltCoverCommand.run
printfn "Execute the instrumented tests"
- let sample = Path.getFullName "./Sample18/sample18.core.fsproj"
+ let sample = Path.getFullName "./Sample18/Sample18.fsproj"
let runner = Path.getFullName "_Packaging/Unpack/tools/netcoreapp2.0/AltCover.dll"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp3.0") sample
@@ -3136,7 +3215,7 @@ _Target "ReleaseXUnitFSharpTypesShowVisualized" (fun _ ->
|> AltCoverCommand.run
printfn "Execute the instrumented tests"
- let sample4 = Path.getFullName "./Sample4/sample4.core.fsproj"
+ let sample4 = Path.getFullName "./Sample4/Sample4.fsproj"
let runner = Path.getFullName "_Packaging/Unpack/tools/netcoreapp2.0/AltCover.dll"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp2.1") sample4
@@ -3182,6 +3261,7 @@ _Target "ReleaseXUnitFSharpTypesDotNetFullRunner" (fun _ ->
let i = Path.getFullName "_Binaries/Sample4/Debug+AnyCPU/netcoreapp2.1"
Shell.cleanDir o
+ let before = Actions.ticksNow()
let prep =
AltCover.PrepareOptions.Primitive
({ Primitive.PrepareOptions.Create() with
@@ -3201,7 +3281,7 @@ _Target "ReleaseXUnitFSharpTypesDotNetFullRunner" (fun _ ->
Actions.CheckSample4Content x
printfn "Execute the instrumented tests"
- let sample4 = Path.getFullName "./Sample4/sample4.core.fsproj"
+ let sample4 = Path.getFullName "./Sample4/Sample4.fsproj"
let runner = Path.getFullName "_Packaging/Unpack/tools/netcoreapp2.0/AltCover.dll"
let (dotnetexe, args) = defaultDotNetTestCommandLine (Some "netcoreapp2.1") sample4
@@ -3218,7 +3298,7 @@ _Target "ReleaseXUnitFSharpTypesDotNetFullRunner" (fun _ ->
ToolType = dotnetAltcover
WorkingDirectory = o }
|> AltCoverCommand.run
- Actions.CheckSample4Visits x)
+ Actions.CheckSample4Visits before x)
_Target "MSBuildTest" (fun _ ->
Directory.ensure "./_Reports"
@@ -3227,12 +3307,13 @@ _Target "MSBuildTest" (fun _ ->
let x = Path.getFullName "./_Reports/MSBuildTest.xml"
// Run
+ let before = Actions.ticksNow()
Shell.cleanDir (sample @@ "_Binaries")
DotNet.msbuild (fun opt ->
opt.WithCommon(fun o' -> { dotnetOptions o' with WorkingDirectory = sample }))
(build @@ "msbuildtest.proj")
printfn "Checking samples4 output"
- Actions.CheckSample4 x
+ Actions.CheckSample4 before x
// touch-test framework
let unpack =
@@ -3240,7 +3321,7 @@ _Target "MSBuildTest" (fun _ ->
| Some test ->
Trace.traceImportant "Using the NuGet package"
Path.GetDirectoryName test
- | _ -> Path.getFullName "_Packaging/Unpack/tools/net45"
+ | _ -> Path.getFullName "_Packaging/Unpack/tools/net472"
MSBuild.build (fun p ->
{ p with
@@ -3249,9 +3330,10 @@ _Target "MSBuildTest" (fun _ ->
[ "Configuration", "Debug"
"MSBuildTest", "true"
"AltCoverPath", unpack.Replace('\\', '/')
- "DebugSymbols", "True" ] }) "./Sample4/Sample4.fsproj")
+ "DebugSymbols", "True" ] }) "./Sample4/Sample4LongForm.fsproj")
_Target "ApiUse" (fun _ ->
+ let before = Actions.ticksNow()
try
Directory.ensure "./_ApiUse"
Shell.cleanDir ("./_ApiUse")
@@ -3272,7 +3354,7 @@ _Target "ApiUse" (fun _ ->
repo.SetAttributeValue(XName.Get "value", Path.getFullName "./_Packaging")
config.Save "./_ApiUse/_DotnetTest/NuGet.config"
- let fsproj = XDocument.Load "./Sample4/sample4.core.fsproj"
+ let fsproj = XDocument.Load "./Sample4/Sample4.fsproj"
let targets = fsproj.Descendants(XName.Get("TargetFrameworks")) |> Seq.head
targets.SetValue "netcoreapp2.1"
let pack = fsproj.Descendants(XName.Get("PackageReference")) |> Seq.head
@@ -3424,12 +3506,12 @@ Target.runOrDefault "DoIt"
File.WriteAllText("./_ApiUse/DriveApi.fsx", script.Replace("{0}","\"" + ver + "\""))
- let dependencies = """version 5.245.1
+ let dependencies = """version 5.249.0
// [ FAKE GROUP ]
group NetcoreBuild
source https://api.nuget.org/v3/index.json
- nuget Fake.Core.Target >= 5.20.1
- nuget Fake.DotNet.Cli >= 5.20.1
+ nuget Fake.Core.Target >= 5.20.3
+ nuget Fake.DotNet.Cli >= 5.20.3
source {0}
nuget AltCover.Api {1}
source {2}
@@ -3445,7 +3527,7 @@ group NetcoreBuild
"running fake script returned with a non-zero exit code"
let x = Path.getFullName "./_ApiUse/_DotnetTest/coverage.netcoreapp2.1.xml"
- Actions.CheckSample4 x
+ Actions.CheckSample4 before x
finally
[ "altcover"; "altcover.api"; "altcover.fake" ]
|> List.iter (fun f ->
@@ -3472,7 +3554,7 @@ _Target "DotnetTestIntegration" (fun _ ->
repo.SetAttributeValue(XName.Get "value", Path.getFullName "./_Packaging")
config.Save (d @@ "NuGet.config")
- let projpath = "./" + p + "/" + p.ToLowerInvariant() + ".core." + t
+ let projpath = "./" + p + "/" + p + "." + t
printfn "%s -> %s" d projpath
let fsproj = XDocument.Load projpath
@@ -3495,6 +3577,7 @@ _Target "DotnetTestIntegration" (fun _ ->
)
printfn "Simple positive case ------------------------------------------------"
+ let before = Actions.ticksNow()
let p0 = Primitive.PrepareOptions.Create()
let c0 = Primitive.CollectOptions.Create()
@@ -3511,14 +3594,14 @@ _Target "DotnetTestIntegration" (fun _ ->
|> testWithCLIArguments) "dotnettest.fsproj"
let x = Path.getFullName "./_DotnetTest/coverage.netcoreapp2.1.xml"
- Actions.CheckSample4 x
+ Actions.CheckSample4 before x
printfn "optest failing instrumentation ------------------------------------------------"
let xx0 = Path.getFullName "./_Reports/nonesuch.xml"
let pf0 =
- { p0 with AssemblyFilter = [| "NUnit" |]
+ { p0 with AssemblyFilter = [| "NUnit" |]
StrongNameKey = "./_Reports/nonesuch.junk"
XmlReport = xx0
} |> AltCover.PrepareOptions.Primitive
@@ -3669,6 +3752,24 @@ _Target "DotnetTestIntegration" (fun _ ->
let cover37 = XDocument.Load "./RegressionTesting/issue37/coverage.xml"
Assert.That(cover37.Descendants(XName.Get("BranchPoint")) |> Seq.length, Is.EqualTo 2)
+
+ // printfn "Regression test issue 94 ------------------------------------------------"
+ // let proj = XDocument.Load "./Sample22/Sample22.xml"
+ // let pack = proj.Descendants(XName.Get("PackageReference")) |> Seq.head
+ // let inject =
+ // XElement
+ // (XName.Get "PackageReference", XAttribute(XName.Get "Include", "altcover"),
+ // XAttribute(XName.Get "Version", !Version))
+ // pack.AddBeforeSelf inject
+ // proj.Save "./Sample22/Sample22.fsproj"
+
+ // let p4 = { p0 with AssemblyFilter = [ "NUnit" ] }
+ // let pp4 = AltCover.PrepareOptions.Primitive p4
+ // DotNet.test (fun to' ->
+ // { ((to'.WithCommon(withWorkingDirectoryVM "Sample22")).WithAltCoverOptions
+ // pp4 cc0 ForceTrue) with Configuration = DotNet.BuildConfiguration.Release }
+ // |> testWithCLIArguments) ""
+
finally
let folder = (nugetCache @@ "altcover") @@ !Version
Shell.mkdir folder
@@ -3820,18 +3921,23 @@ _Target "Issue67" (fun _ ->
Shell.mkdir folder
Shell.deleteDir folder)
-_Target "Issue72" (fun _ ->
+_Target "Issue72" (fun _ -> // Confusing switch case coverage @ https://github.com/SteveGilham/altcover/issues/72
try
Directory.ensure "./Sample16/Test/_Issue72"
Shell.cleanDir ("./Sample16/Test/_Issue72")
+ Directory.ensure "./Sample16/Test/_Issue72b"
+ Shell.cleanDir ("./Sample16/Test/_Issue72b")
let config = XDocument.Load "./Build/NuGet.config.dotnettest"
let repo = config.Descendants(XName.Get("add")) |> Seq.head
repo.SetAttributeValue(XName.Get "value", Path.getFullName "./_Packaging")
config.Save "./Sample16/Test/_Issue72/NuGet.config"
+ config.Save "./Sample16/Test/_Issue72b/NuGet.config"
Shell.copy "./Sample16/Test/_Issue72" (!!"./Sample16/Test/Test/*.cs")
Shell.copy "./Sample16/Test/_Issue72" (!!"./Sample16/Test/Test/*.json")
+ Shell.copy "./Sample16/Test/_Issue72b" (!!"./Sample16/Test/Test/*.cs")
+ Shell.copy "./Sample16/Test/_Issue72b" (!!"./Sample16/Test/Test/*.json")
let csproj = XDocument.Load "./Sample16/Test/Test/Test.csproj"
@@ -3842,13 +3948,14 @@ _Target "Issue72" (fun _ ->
XAttribute(XName.Get "Version", !Version))
pack.AddBeforeSelf inject
csproj.Save "./Sample16/Test/_Issue72/Test.csproj"
+ csproj.Save "./Sample16/Test/_Issue72b/Test2.csproj"
let p0 =
{ Primitive.PrepareOptions.Create() with
LocalSource = true
VisibleBranches = false
TypeFilter = [ "UnitTest" ]
- XmlReport = "./original.xml" }
+ XmlReport = "./original.$(ProjectName).xml" }
let pp0 = AltCover.PrepareOptions.Primitive p0
let c0 = Primitive.CollectOptions.Create()
@@ -3861,7 +3968,7 @@ _Target "Issue72" (fun _ ->
|> testWithCLIArguments) ""
do use coverageFile =
- new FileStream("./Sample16/Test/_Issue72/original.xml", FileMode.Open,
+ new FileStream("./Sample16/Test/_Issue72/original.Test.xml", FileMode.Open,
FileAccess.Read, FileShare.None, 4096, FileOptions.SequentialScan)
let coverageDocument = XDocument.Load(XmlReader.Create(coverageFile))
@@ -3869,17 +3976,19 @@ _Target "Issue72" (fun _ ->
coverageDocument.Descendants(XName.Get("BranchPoint"))
|> Seq.map (fun x -> x.Attribute(XName.Get("vc")).Value)
|> Seq.toList
- Assert.That
- (found,
- Is.EquivalentTo [ "1"; "4"; "4"; "0"; "3"; "1"; "2"; "1"; "1"; "1"; "5"; "5" ],
- sprintf "original: %A" found)
+ test <@ (found, "first") = (["1"; "4"; "3"; "1"; "2"; "1"; "1"; "1"; "5"; "5"], "first") @> // 3.1.401
+ // [ "1"; "4"; "4"; "0"; "3"; "1"; "2"; "1"; "1"; "1"; "5"; "5" ] @>
+ // Assert.That
+ // (found,
+ // Is.EquivalentTo [ "1"; "4"; "4"; "0"; "3"; "1"; "2"; "1"; "1"; "1"; "5"; "5" ],
+ // sprintf "original: %A" found)
let p1 =
{ Primitive.PrepareOptions.Create() with
LocalSource = true
VisibleBranches = true
TypeFilter = [ "UnitTest" ]
- XmlReport = "./combined.xml" }
+ XmlReport = "./combined.$(ProjectName).xml" }
let pp1 = AltCover.PrepareOptions.Primitive p1
let c0 = Primitive.CollectOptions.Create()
@@ -3892,7 +4001,7 @@ _Target "Issue72" (fun _ ->
|> testWithCLIArguments) ""
do use coverageFile =
- new FileStream("./Sample16/Test/_Issue72/combined.xml", FileMode.Open,
+ new FileStream("./Sample16/Test/_Issue72/combined.Test.xml", FileMode.Open,
FileAccess.Read, FileShare.None, 4096, FileOptions.SequentialScan)
let coverageDocument = XDocument.Load(XmlReader.Create(coverageFile))
@@ -3900,9 +4009,23 @@ _Target "Issue72" (fun _ ->
coverageDocument.Descendants(XName.Get("BranchPoint"))
|> Seq.map (fun x -> x.Attribute(XName.Get("vc")).Value)
|> Seq.toList
- Assert.That
- (found, Is.EquivalentTo [ "1"; "4"; "1"; "1"; "1"; "1"; "5"; "5" ],
- sprintf "combined: %A" found)
+ test <@ (found, "second") = ([ "1"; "4"; "1"; "1"; "1"; "1"; "5"; "5" ], "second") @>
+ // Assert.That
+ // (found, Is.EquivalentTo [ "1"; "4"; "1"; "1"; "1"; "1"; "5"; "5" ],
+ // sprintf "combined: %A" found)
+
+ // Issue 98 optest
+ printfn "----------------------------- issue 98 ----------------------------------------"
+ Shell.cleanDir ("./Sample16/Test/_Intermediate")
+ let psln = AltCover.PrepareOptions.Primitive {p0 with XmlReport = "$(SolutionDir)/_Reports/solution.$(ProjectName).xml"}
+ DotNet.test (fun p ->
+ (({ p.WithCommon(withWorkingDirectoryVM "./Sample16/Test") with
+ Configuration = DotNet.BuildConfiguration.Debug
+ NoBuild = false }).WithAltCoverOptions psln cc0 ForceTrue)
+ .WithAltCoverImportModule().WithAltCoverGetVersion()
+ |> testWithCLIArguments) "Issue72.sln"
+ test <@ File.Exists ("./Sample16/Test/_Reports/solution.Test.xml") @>
+ test <@ File.Exists ("./Sample16/Test/_Reports/solution.Test2.xml") @>
finally
let folder = (nugetCache @@ "altcover") @@ !Version
@@ -3916,7 +4039,7 @@ _Target "DotnetGlobalIntegration" (fun _ ->
Directory.ensure working
Shell.cleanDir working
- let fsproj = XDocument.Load "./Sample4/sample4.core.fsproj"
+ let fsproj = XDocument.Load "./Sample4/Sample4.fsproj"
let targets = fsproj.Descendants(XName.Get("TargetFrameworks")) |> Seq.head
targets.SetValue "netcoreapp2.1"
fsproj.Save "./_DotnetGlobalTest/dotnetglobal.fsproj"
@@ -3949,6 +4072,8 @@ _Target "DotnetGlobalIntegration" (fun _ ->
|> List.iter (AltCoverCommand.Options.Create
>> AltCoverCommand.run)
+ let before = Actions.ticksNow()
+
Actions.Run("altcover", ".", ["TargetsPath"]) "altcover target"
let prep =
AltCover.PrepareOptions.Primitive
@@ -3976,7 +4101,7 @@ _Target "DotnetGlobalIntegration" (fun _ ->
|> AltCoverCommand.Collect
{ AltCoverCommand.Options.Create collect with WorkingDirectory = working } |> AltCoverCommand.run
- Actions.CheckSample4Visits x
+ Actions.CheckSample4Visits before x
let command =
"""$ImportModule = (altcover ImportModule | Out-String).Trim().Split()[1].Trim(@([char]34)); Import-Module $ImportModule; ConvertTo-BarChart -?"""
CreateProcess.fromRawCommand pwsh [ "-NoProfile"; "-Command"; command ]
@@ -4005,24 +4130,8 @@ _Target "MakeDocumentation" (fun _ ->
_Target "BulkReport" (fun _ ->
printfn "Overall coverage reporting"
- Directory.ensure "./_Reports/_BulkReport"
- !!"./_Reports/*.xml"
- |> Seq.filter (fun f ->
- not <| f.EndsWith("Report.xml", StringComparison.OrdinalIgnoreCase))
- |> Seq.toList
- |> ReportGenerator.generateReports (fun p ->
- { p with
- ToolType = ToolType.CreateLocalTool()
- ReportTypes = [ ReportGenerator.ReportType.Html ]
- TargetDir = "_Reports/_BulkReport" })
-
- let numbers = uncovered @"_Reports/_Unit*/Summary.xml"
- if numbers
- |> List.tryFind (fun n -> n > 0)
- |> Option.isSome
- || !misses > 1
- then Assert.Fail("Coverage is too low")
+ // coverageSummary ()
let issue71 = !!(@"./**/*.exn") |> Seq.toList
match issue71 with
@@ -4087,10 +4196,16 @@ Target.activateFinal "ResetConsoleColours"
"Compilation"
==> "UnitTestWithOpenCover"
+//=?> ("UnitTestWithOpenCover",
+// (!!(@"_Binaries/*Test*/Debug+AnyCPU/net4*/AltCover*Test*.dll")
+// |> Seq.length) < 6)
=?> ("UnitTest", Environment.isWindows) // OpenCover Mono support
"Compilation"
==> "UnitTestWithAltCover"
+//=?> ("UnitTestWithAltCover",
+// (!!(@"_Binaries/*Test*/Debug+AnyCPU/net4*/AltCover*Test*.dll")
+// |> Seq.length) < 6)
==> "UnitTest"
"Compilation"
diff --git a/altcover.inspector/Program.cs b/Demo/inspector/Program.cs
similarity index 100%
rename from altcover.inspector/Program.cs
rename to Demo/inspector/Program.cs
diff --git a/altcover.inspector/Program.fs b/Demo/inspector/Program.fs
similarity index 100%
rename from altcover.inspector/Program.fs
rename to Demo/inspector/Program.fs
diff --git a/altcover.inspector/altcover.inspector.csproj b/Demo/inspector/inspector.csproj
similarity index 100%
rename from altcover.inspector/altcover.inspector.csproj
rename to Demo/inspector/inspector.csproj
diff --git a/altcover.inspector/altcover.inspector.fsproj b/Demo/inspector/inspector.fsproj
similarity index 100%
rename from altcover.inspector/altcover.inspector.fsproj
rename to Demo/inspector/inspector.fsproj
diff --git a/MCS.sln b/MCS.sln
index f318c4eab..99364190d 100644
--- a/MCS.sln
+++ b/MCS.sln
@@ -5,7 +5,7 @@ VisualStudioVersion = 16.0.29728.190
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "MCS", "MCS\MCS.fsproj", "{FBAA818A-A049-4149-9032-31C8D244AEA6}"
EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Sample4", "Sample4\Sample4.fsproj", "{607161F1-86BE-471A-9837-3D19BFAAA5FA}"
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Sample4", "Sample4\Sample4LongForm.fsproj", "{607161F1-86BE-471A-9837-3D19BFAAA5FA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/README.md b/README.md
index 0f0f63255..dc24d7f2a 100644
--- a/README.md
+++ b/README.md
@@ -35,16 +35,10 @@ In particular, while instrumenting .net core assemblies "just works" with this a
### Why altcover? -- the back-story of why it was ever a thing
-Back in 2010, the new .net version finally removed the deprecated profiling APIs that the free NCover 1.5.x series relied upon. The first version of AltCover was written to both fill a gap in functionality, and to give me an excuse for a ground-up F# project to work on. As such, it saw real production use for about a year and a half, until OpenCover reached a point where it could be used for .net4/x64 work (and I could find time to adapt everything downstream that consumed NCover format input).
+Back in 2010, the new .net version finally removed the deprecated profiling APIs that the free NCover 1.5.x series relied upon. The first version of AltCover was written to both fill a gap in functionality, and to give me an excuse for a ground-up F# project to work on. As such, it saw real production use for about a year and a half, until [OpenCover](https://github.com/OpenCover/opencover) reached a point where it could be used for .net4/x64 work (and I could find time to adapt everything downstream that consumed NCover format input).
Fast forwards to autumn 2017, and I get the chance to dust the project off, with the intention of saying that it worked on Mono, too -- and realise that it's _déja vu_ all over again, because .net core didn't yet have profiler based coverage tools either, and the same approach would work there as well.
-### Other notes
-
-1. On old-fashioned .net framework, the `ProcessExit` event handling window of ~2s is sufficient for processing significant bodies of code under test (several 10s of kloc, as observed in production back in the '10-'11 timeframe); under `dotnet test` [the `vstest.console` process imposes a 100ms guillotine](https://github.com/Microsoft/vstest/issues/1900#issuecomment-457488472), even though .net Core imposes no time-limit of its own. This is about enough time to fill in an NCover report for a program of no more than 1kloc, hence the development of a "write it all promptly to file and post-process" `Runner` mode. With version 5.3 and above, the `dotnet test` integration now hooks the VSTest in-process data collection, allowing an indefinite window to write collected data from memory, thus removing the file I/O bottleneck.
-
-2. Under Mono on non-Windows platforms the default values of `--debug:full` or `--debug:pdbonly` generate no symbols from F# projects -- and without symbols, such assemblies cannot be instrumented. Unlike with C# projects, where the substitution appears to be automatic, to use the necessary `--debug:portable` option involves explicitly hand editing the old-school `.fsproj` file to have `portable`.
-
## Continuous Integration
| | | |
@@ -62,7 +56,11 @@ See the [current project](https://github.com/SteveGilham/altcover/projects/8) an
All `To do` and `On Hold` items are implicitly up for grabs and `Help Wanted`; most of the current project items are XML manipulation or GUI programming.
-I am considering retiring the legacy framework/Mono support after the release of .net 5, contingent on having suitable replacements for Framework-only static analysis tools.
+### Possible retirement/obsolescence of support
+
+tl;dr -- legacy framework/Mono support is not going away any time soon.
+
+Despite earlier ruminations on the subject, as .net 4.7.2 can consume `netstandard2.0` libraries (everything but the recorder), and .net core 2+ can consume `net20` libraries (the recorder), legacy framework/Mono support will continue after the release of .net 5 and until such a time as it is no longer possible to retain those API levels. Framework builds apart from the minimum (executable entry-points and the recorder) remain until I have suitable replacements for Framework-only static analysis tooling (i.e. can convince FxCop to consume `netstandard20`).
## Building
@@ -72,22 +70,20 @@ I am considering retiring the legacy framework/Mono support after the release of
It is assumed that the following are available
-.net core SDK 3.1.301 (`dotnet`) -- try https://www.microsoft.com/net/download
-PowerShell Core 7.0.1 or later (`pwsh`) -- try https://github.com/powershell/powershell
+.net core SDK 3.1.401 (`dotnet`) -- try https://www.microsoft.com/net/download
+PowerShell Core 7.0.3 or later (`pwsh`) -- try https://github.com/powershell/powershell
The build may target netstandard2.0 or netcoreapp2.x, but does not need any pre-3.1 runtimes to be installed.
#### Windows
-You will need Visual Studio VS2019 (Community Edition) v16.6.2 or later with F# language support (or just the associated build tools and your editor of choice). The NUnit3 Test Runner will simplify the basic in-IDE development cycle. Note that some of the unit tests expect that the separate build of test assemblies under Mono, full .net framework and .net core has taken place; there will be around 20 failures when running the unit tests in Visual Studio from clean when those expected assemblies are not found.
+You will need Visual Studio VS2019 (Community Edition) v16.7 or later with F# language support (or just the associated build tools and your editor of choice). The NUnit3 Test Runner will simplify the basic in-IDE development cycle. Note that some of the unit tests expect that the separate build of test assemblies under Mono, full .net framework and .net core has taken place; there will many failures when running the unit tests in Visual Studio from clean when those expected assemblies are not found.
For GTK# support, the GTK# latest 2.12 install is expected -- try https://www.mono-project.com/download/stable/#download-win -- while the latest releases of the GTK#3 libraries will download the native support if the expected version is not detected.
-In preparation for the .net 5 unification, on Windows, the default full build uses new-style projects under `altcover.core.sln` with a few test/helper old-style projects built from `MCS.sln`; and the build for release only needs these.
-
#### *nix
-It is assumed that `mono` (version 6.8.x) and `dotnet` are on the `PATH` already, and everything is built from the command line, with your favourite editor used for coding.
+It is assumed that `mono` (version 6.10.x) and `dotnet` are on the `PATH` already, and everything is built from the command line, with your favourite editor used for coding.
### Bootstrapping
@@ -106,7 +102,7 @@ If there's a passing build on the CI servers for this commit, then it's likely t
### Unit Tests
-The tests in the `AltCover.Test` project are ordered in the same dependency order as the code within the AltCover project (the later `Runner` tests aside). While working on any given layer, it would make sense to comment out all the tests for later files so as to show what is and isn't being covered by explicit testing, rather than merely being cascaded through.
+The tests in the `AltCover.Test` project are broadly ordered in the same dependency order as the code within the AltCover project (the later `Runner` tests aside). While working on any given layer, it would make sense to comment out all the tests for later files so as to show what is and isn't being covered by explicit testing, rather than merely being cascaded through.
## Thanks to
diff --git a/AltCover.Recorder/Adapter.fs b/Recorder.Tests/Adapter.fs
similarity index 100%
rename from AltCover.Recorder/Adapter.fs
rename to Recorder.Tests/Adapter.fs
diff --git a/Recorder.Tests/altcover.recorder.tests.core.fsproj b/Recorder.Tests/AltCover.Recorder.Tests.fsproj
similarity index 81%
rename from Recorder.Tests/altcover.recorder.tests.core.fsproj
rename to Recorder.Tests/AltCover.Recorder.Tests.fsproj
index 573f321b7..6fb5a0292 100644
--- a/Recorder.Tests/altcover.recorder.tests.core.fsproj
+++ b/Recorder.Tests/AltCover.Recorder.Tests.fsproj
@@ -1,13 +1,13 @@
- netcoreapp3.0;net47;net20
+ netcoreapp3.0;net472;net20
false
AltCover.Recorder.Tests
false
NETCOREAPP2_0
NET2
- NET4
+ NET4
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
@@ -24,9 +24,10 @@
+
-
+
@@ -42,7 +43,7 @@
all
runtime; build; native; contentfiles; analyzers
-
+
@@ -53,7 +54,7 @@
-
+
@@ -61,19 +62,20 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
+
-
+
4.3.0
@@ -84,5 +86,4 @@
4.3.0
-
\ No newline at end of file
diff --git a/Recorder.Tests/Program.fs b/Recorder.Tests/Program.fs
index 584284a58..ee95a60b8 100644
--- a/Recorder.Tests/Program.fs
+++ b/Recorder.Tests/Program.fs
@@ -12,6 +12,6 @@ namespace Tests.Recorder.Unknown
#endif
#endif
-module Program =
+module UnitTestStub =
[]
let main _ = 0
\ No newline at end of file
diff --git a/Recorder.Tests/Recorder.Tests.fs b/Recorder.Tests/Recorder.Tests.fs
index c30a6da7b..bc6fe5a1f 100644
--- a/Recorder.Tests/Recorder.Tests.fs
+++ b/Recorder.Tests/Recorder.Tests.fs
@@ -16,7 +16,6 @@ namespace Tests.Recorder.Unknown
open System
open System.Collections.Generic
-open System.Diagnostics
open System.IO
open System.IO.Compression
open System.Reflection
@@ -27,6 +26,8 @@ open System.Xml
open AltCover.Recorder
open NUnit.Framework
+#nowarn "25" // partial pattern match
+
module AltCoverTests =
[]
@@ -100,12 +101,12 @@ module AltCoverTests =
let key = " "
Instance.I.recording <- false
- Instance.Visit("key", 17)
+ Instance.Visit "key" 17
Instance.I.recording <- true
Instance.CoverageFormat <- ReportFormat.NCover
- Instance.Visit(key, 23)
+ Instance.Visit key 23
Instance.CoverageFormat <- ReportFormat.OpenCoverWithTracking
- Instance.Visit(key, 23)
+ Instance.Visit key 23
Assert.True( Adapter.VisitsSeq()
|> Seq.length = 1 )
Assert.True( Adapter.VisitsEntrySeq key
@@ -121,12 +122,14 @@ module AltCoverTests =
[]
let JunkUspidGivesNegativeIndex() =
let key = " "
- let index = Counter.I.findIndexFromUspid(0, key)
+ let index = Counter.I.findIndexFromUspid 0 key
Assert.True( index < 0 )
[]
let PayloadGeneratedIsAsExpected() =
try
+ Instance.I.isRunner <- false
+ Instance.CoverageFormat <- ReportFormat.OpenCoverWithTracking
Assert.True( Instance.I.callerId() = 0 )
Assert.True( Adapter.PayloadSelector false = Adapter.Null() )
Assert.True( Adapter.PayloadSelector true = Adapter.Null() )
@@ -144,6 +147,7 @@ module AltCoverTests =
Assert.True(( Adapter.PayloadSelector true = (Adapter.Call 4321) ))
finally
Instance.Pop()
+ Instance.CoverageFormat <- ReportFormat.NCover
let result2 = Adapter.PayloadSelection(1311693406324658740L, 1000L, true)
let expected2 = Adapter.Time 1311693406324658000L
@@ -154,16 +158,83 @@ module AltCoverTests =
Assert.True( Adapter.Null()
|> Adapter.untime
|> Seq.isEmpty )
- match Adapter.untime probed |> Seq.toList with
- | [ probe ] ->
- Assert.True( probe % 1000L = 0L )
- Assert.True( probe <= v2 )
- Assert.True( probe >= (1000L * (v1 / 1000L)) )
- | _ -> Assert.True( false )
+ let [ probe ] = Adapter.untime probed |> Seq.toList
+ Assert.True( probe % 1000L = 0L )
+ Assert.True( probe <= v2 )
+ Assert.True( probe >= (1000L * (v1 / 1000L)) )
Assert.True( Instance.I.callerId() = 0 )
Instance.Pop()
Assert.True( Instance.I.callerId() = 0 )
+ []
+ let PayloadWithEntryExitGeneratedIsAsExpected() =
+ try
+ Instance.I.isRunner <- true
+ Instance.CoverageFormat <- ReportFormat.OpenCoverWithTracking
+ Adapter.VisitsClear()
+
+ Assert.True( Instance.I.callerId() = 0 )
+ Assert.True( Adapter.PayloadSelector false = Adapter.Null() )
+ Assert.True( Adapter.PayloadSelector true = Adapter.Null() )
+ Instance.Push 4321
+ Assert.True( Adapter.PayloadSelector false = Adapter.Null() )
+ Assert.True( Adapter.PayloadSelector true = (Adapter.Call 4321) )
+ try
+ Instance.Push 6789
+ // 0x1234123412341234 == 1311693406324658740
+ let result = Adapter.PayloadSelection(1311693406324658740L, 1000L, true)
+ let expected = Adapter.NewBoth(1311693406324658000L, 6789)
+ Assert.True(( result = expected ))
+ finally
+ Instance.Pop()
+ Assert.True(( Adapter.PayloadSelector true = (Adapter.Call 4321) ))
+ finally
+ Instance.Pop()
+ Instance.I.isRunner <- false
+ Instance.CoverageFormat <- ReportFormat.NCover
+
+ let result2 = Adapter.PayloadSelection(1311693406324658740L, 1000L, true)
+ let expected2 = Adapter.Time 1311693406324658000L
+ Assert.True(( result2 = expected2 ))
+ let v1 = DateTime.UtcNow.Ticks
+ let probed = Adapter.PayloadControl(1000L, true)
+ let v2 = DateTime.UtcNow.Ticks
+ Assert.True( Adapter.Null()
+ |> Adapter.untime
+ |> Seq.isEmpty )
+ let [ probe ] = Adapter.untime probed |> Seq.toList
+ Assert.True( probe % 1000L = 0L )
+ Assert.True( probe <= v2 )
+ Assert.True( probe >= (1000L * (v1 / 1000L)) )
+ Assert.True( Instance.I.callerId() = 0 )
+ Instance.Pop()
+ Assert.True( Instance.I.callerId() = 0 )
+ Assert.That(Instance.I.visits.Keys, Is.EquivalentTo [Track.Entry; Track.Exit])
+ Assert.That(Instance.I.visits.[Track.Entry].Keys, Is.EquivalentTo [4321; 6789])
+ Assert.That(Instance.I.visits.[Track.Exit].Keys, Is.EquivalentTo [4321; 6789])
+ let a = Instance.I.visits.[Track.Entry].[4321]
+ Assert.That (a.Count, Is.EqualTo 0L)
+ Assert.That (a.Tracks |> Seq.length, Is.EqualTo 1)
+ let b = Instance.I.visits.[Track.Entry].[6789]
+ Assert.That (b.Count, Is.EqualTo 0L)
+ Assert.That (b.Tracks |> Seq.length, Is.EqualTo 1)
+ let c = Instance.I.visits.[Track.Exit].[6789]
+ Assert.That (c.Count, Is.EqualTo 0L)
+ Assert.That (c.Tracks |> Seq.length, Is.EqualTo 1)
+ let d = Instance.I.visits.[Track.Exit].[4321]
+ Assert.That (d.Count, Is.EqualTo 0L)
+ Assert.That (d.Tracks |> Seq.length, Is.EqualTo 1)
+
+ let a2 = a.Tracks |> Seq.head |> Adapter.untime |> Seq.head
+ let b2 = b.Tracks |> Seq.head |> Adapter.untime |> Seq.head
+ Assert.That (b2 >= a2)
+ let c2 = c.Tracks |> Seq.head |> Adapter.untime |> Seq.head
+ Assert.That (c2 >= b2)
+ let d2 = d.Tracks |> Seq.head |> Adapter.untime |> Seq.head
+ Assert.That (d2 >= c2, sprintf "%A >= %A" d2 c2)
+
+ Adapter.VisitsClear()
+
[]
let RealIdShouldIncrementCountSynchronously() =
GetMyMethodName "=>"
@@ -174,7 +245,7 @@ module AltCoverTests =
Instance.I.visits.Clear()
Instance.I.trace <- Adapter.MakeNullTrace null
let key = " "
- Instance.I.visitSelection((Adapter.Null()), key, 23)
+ Instance.I.visitSelection (Adapter.Null()) key 23
Assert.That
(Instance.I.visits.Count, Is.EqualTo 1,
"A visit that should have happened, didn't")
@@ -188,19 +259,32 @@ module AltCoverTests =
Instance.I.trace <- save)
GetMyMethodName "<="
+ let strip before (all:HashSet) =
+ before
+ |> Seq.iter (fun x ->
+ Assert.That(all.Contains x)
+ all.Remove x |> ignore)
+
+ []
+ let StripWorks() =
+ let b1 = [ "1" ]
+ let a1 = [ "1"; "2" ]
+ let a1' = HashSet(a1)
+ strip b1 a1'
+ let stripped1 = a1' |> Seq.toList
+ Assert.That(stripped1, Is.EquivalentTo [ "2" ])
+ Assert.Throws( fun () -> strip b1 a1') |> ignore
+
[]
let ExceptionLoggedToFile() =
let path = Instance.ReportFile |> Path.GetFullPath
let where = path |> Path.GetDirectoryName
let before = Directory.GetFiles(where, "*.exn")
- Instance.I.logException("a", "b", "c", "ex")
+ Instance.I.logException "a" "b" "c" "ex"
let after = Directory.GetFiles(where, "*.exn")
Assert.That(after.Length, Is.GreaterThan before.Length)
let all = HashSet(after)
- before
- |> Seq.iter (fun x ->
- Assert.That(all.Contains x)
- all.Remove x |> ignore)
+ strip before all
Assert.That(all.Count, Is.EqualTo 1)
let file = all |> Seq.head
let lines = file |> File.ReadAllLines
@@ -250,6 +334,7 @@ module AltCoverTests =
Assert.That(exn.Message, Is.EqualTo unique)
#if NETCOREAPP2_0
+
[]
let NullRefShouldBeHandled() =
GetMyMethodName "=>"
@@ -261,14 +346,12 @@ module AltCoverTests =
let path = Instance.ReportFile |> Path.GetFullPath
let where = path |> Path.GetDirectoryName
let before = Directory.GetFiles(where, "*.exn")
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
+ Instance.I.visitImpl key 23 (Adapter.Null())
let after = Directory.GetFiles(where, "*.exn")
Assert.That(after.Length, Is.GreaterThan before.Length)
let all = HashSet(after)
- before
- |> Seq.iter (fun x ->
- Assert.That(all.Contains x)
- all.Remove x |> ignore)
+ strip before all
+
Assert.That(all.Count, Is.EqualTo 1)
let file = all |> Seq.head
let lines = file |> File.ReadAllLines
@@ -294,8 +377,8 @@ module AltCoverTests =
try
Instance.I.visits.Clear()
let key = " "
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
- Instance.I.visitImpl("key", 42, (Adapter.Null()))
+ Instance.I.visitImpl key 23 (Adapter.Null())
+ Instance.I.visitImpl "key" 42 (Adapter.Null())
Assert.That(Instance.I.visits.Count, Is.EqualTo 2)
finally
Instance.I.visits.Clear())
@@ -308,8 +391,8 @@ module AltCoverTests =
try
Instance.I.visits.Clear()
let key = " "
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
- Instance.I.visitImpl(key, 42, (Adapter.Null()))
+ Instance.I.visitImpl key 23 (Adapter.Null())
+ Instance.I.visitImpl key 42 (Adapter.Null())
Assert.That(Instance.I.visits.Count, Is.EqualTo 1)
Assert.That(Instance.I.visits.[key].Count, Is.EqualTo 2)
finally
@@ -324,8 +407,8 @@ module AltCoverTests =
try
Instance.I.visits.Clear()
let key = " "
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
+ Instance.I.visitImpl key 23 (Adapter.Null())
+ Instance.I.visitImpl key 23 (Adapter.Null())
Assert.That(Instance.I.visits.[key].[23].Count, Is.EqualTo 2)
Assert.That(Instance.I.visits.[key].[23].Tracks, Is.Empty)
finally
@@ -341,8 +424,8 @@ module AltCoverTests =
Instance.I.visits.Clear()
let key = " "
let payload = Adapter.Time DateTime.UtcNow.Ticks
- Instance.I.visitImpl(key, 23, (Adapter.Null()))
- Instance.I.visitImpl(key, 23, payload)
+ Instance.I.visitImpl key 23 (Adapter.Null())
+ Instance.I.visitImpl key 23 payload
Assert.That(Instance.I.visits.[key].[23].Count, Is.EqualTo 1)
Assert.That(Instance.I.visits.[key].[23].Tracks, Is.EquivalentTo [ payload ])
finally
@@ -652,10 +735,37 @@ module AltCoverTests =
Console.SetOut saved)
GetMyMethodName "<="
+ let trywith<'a when 'a :> exn> f g =
+ try
+ f()
+ with
+ | :? 'a -> g()
+
+ let trywithrelease<'a when 'a :> exn> f =
+ trywith f Instance.I.mutex.ReleaseMutex
+
+ []
+ let CanTryWith() =
+ let mutable flag = false
+ let setFlag = (fun () -> flag <- true)
+ trywith
+ (fun () -> ())
+ setFlag
+ Assert.That(flag, Is.False)
+
+ trywith
+ (fun () -> InvalidOperationException() |> raise)
+ setFlag
+ Assert.That(flag, Is.True)
+
+ Instance.I.mutex.WaitOne(1000) |> ignore
+ trywithrelease
+ (fun () -> InvalidOperationException() |> raise)
+
let PauseLeavesExpectedTraces() =
GetMyMethodName "=>"
lock Adapter.Lock (fun () ->
- try
+ trywithrelease (fun () ->
let saved = Console.Out
let here = Directory.GetCurrentDirectory()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
@@ -699,21 +809,20 @@ module AltCoverTests =
[ "1"; "1"; "1"; "1"; "1"; "1"; "0"; String.Empty; "X"; "-1" ])
finally
Instance.I.trace <- save
- if File.Exists Instance.ReportFile then File.Delete Instance.ReportFile
+ AltCoverCoreTests.maybeDeleteFile Instance.ReportFile
Adapter.VisitsClear()
Instance.I.isRunner <- false
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
- with :? AbandonedMutexException -> Instance.I.mutex.ReleaseMutex())
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
+ ))
GetMyMethodName "<="
let ResumeLeavesExpectedTraces() =
GetMyMethodName "=>"
lock Adapter.Lock (fun () ->
- try
+ trywithrelease (fun () ->
let saved = Console.Out
let here = Directory.GetCurrentDirectory()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
@@ -764,22 +873,21 @@ module AltCoverTests =
finally
Adapter.Reset()
Instance.I.trace <- save
- if File.Exists Instance.ReportFile then File.Delete Instance.ReportFile
+ AltCoverCoreTests.maybeDeleteFile Instance.ReportFile
Adapter.VisitsClear()
Console.SetOut saved
Directory.SetCurrentDirectory(here)
File.Delete tag
- try
- Directory.Delete(unique)
- with :? IOException -> ()
- with :? AbandonedMutexException -> Instance.I.mutex.ReleaseMutex())
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
+ ))
GetMyMethodName "<="
let FlushLeavesExpectedTraces() =
GetMyMethodName "=>"
lock Adapter.Lock (fun () ->
Instance.I.isRunner <- false
- try
+ trywithrelease (fun () ->
let saved = Console.Out
let here = Directory.GetCurrentDirectory()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
@@ -823,21 +931,20 @@ module AltCoverTests =
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
Instance.I.trace <- save
- if File.Exists Instance.ReportFile then File.Delete Instance.ReportFile
+ AltCoverCoreTests.maybeDeleteFile Instance.ReportFile
Adapter.VisitsClear()
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
- with :? AbandonedMutexException -> Instance.I.mutex.ReleaseMutex())
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
+ ))
GetMyMethodName "<="
[]
let SupervisedFlushLeavesExpectedTraces() =
GetMyMethodName "=>"
lock Adapter.Lock (fun () ->
- try
+ trywithrelease (fun () ->
let saved = Console.Out
let here = Directory.GetCurrentDirectory()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
@@ -882,14 +989,13 @@ module AltCoverTests =
finally
Instance.I.trace <- save
Instance.supervision <- false
- if File.Exists Instance.ReportFile then File.Delete Instance.ReportFile
+ AltCoverCoreTests.maybeDeleteFile Instance.ReportFile
Adapter.VisitsClear()
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
- with :? AbandonedMutexException -> Instance.I.mutex.ReleaseMutex())
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
+ ))
GetMyMethodName "<="
[]
@@ -929,12 +1035,11 @@ module AltCoverTests =
|> Seq.map (fun x -> x.GetAttribute("visitcount")),
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
- if File.Exists reportFile then File.Delete reportFile
+ AltCoverCoreTests.maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
[]
let FlushLeavesExpectedTracesWhenBroken() =
@@ -971,12 +1076,11 @@ module AltCoverTests =
(after.OuterXml,
Is.EqualTo "")
finally
- if File.Exists reportFile then File.Delete reportFile
+ AltCoverCoreTests.maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
#if !NET2
[]
@@ -1020,12 +1124,11 @@ module AltCoverTests =
|> Seq.map (fun x -> x.GetAttribute("visitcount")),
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
- if File.Exists reportFile then File.Delete reportFile
+ AltCoverCoreTests.maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
[]
let ZipFlushLeavesExpectedTracesWhenBroken() =
@@ -1062,14 +1165,13 @@ module AltCoverTests =
(after.OuterXml,
Is.EqualTo "")
finally
- if File.Exists reportFile then File.Delete reportFile
- if File.Exists outputFile then File.Delete outputFile
- if File.Exists zipFile then File.Delete zipFile
+ AltCoverCoreTests.maybeDeleteFile reportFile
+ AltCoverCoreTests.maybeDeleteFile outputFile
+ AltCoverCoreTests.maybeDeleteFile zipFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
[]
let ZipFlushLeavesExpectedTracesWhenBrokenInPlace() =
@@ -1103,18 +1205,17 @@ module AltCoverTests =
let zipInfo = FileInfo(zipFile)
Assert.That(zipInfo.Length, Is.EqualTo 0)
finally
- if File.Exists zipFile then File.Delete zipFile
+ AltCoverCoreTests.maybeDeleteFile zipFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
let ZipFlushLeavesExpectedTraces() =
GetMyMethodName "=>"
lock Adapter.Lock (fun () ->
Instance.I.isRunner <- false
- try
+ trywithrelease (fun () ->
let saved = Console.Out
let here = Directory.GetCurrentDirectory()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
@@ -1167,14 +1268,13 @@ module AltCoverTests =
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
Instance.I.trace <- save
- if File.Exists Instance.ReportFile then File.Delete Instance.ReportFile
+ AltCoverCoreTests.maybeDeleteFile Instance.ReportFile
Adapter.VisitsClear()
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
- with :? AbandonedMutexException -> Instance.I.mutex.ReleaseMutex())
+ AltCoverCoreTests.maybeIOException
+ (fun () -> Directory.Delete(unique))
+ ))
GetMyMethodName "<="
#endif
@@ -1182,6 +1282,8 @@ module AltCoverTests =
// run only once in Framework mode to avoid contention
[]
let MailboxFunctionsAsExpected() =
+ let dummy = AltCover.Recorder.ExcludeFromCodeCoverageAttribute()
+ Assert.That(dummy, Is.Not.Null)
RealIdShouldIncrementCount()
PauseLeavesExpectedTraces()
ResumeLeavesExpectedTraces()
diff --git a/Recorder.Tests/Tracer.Tests.fs b/Recorder.Tests/Tracer.Tests.fs
index 5b4a947bd..b82516be1 100644
--- a/Recorder.Tests/Tracer.Tests.fs
+++ b/Recorder.Tests/Tracer.Tests.fs
@@ -12,6 +12,8 @@ namespace Tests.Recorder.Unknown
#endif
#endif
+#nowarn "25" // partial pattern match
+
open System
open System.Collections.Generic
open System.IO
@@ -22,18 +24,47 @@ open NUnit.Framework
//[]
module AltCoverCoreTests =
+ let maybeIOException f =
+ try
+ f()
+ with :? IOException -> ()
+
+ let maybeDeleteFile f =
+ if File.Exists f
+ then File.Delete f
+
+ let maybeReraise f g =
+ try
+ f()
+ with _ ->
+ g()
+ reraise()
+
+ []
+ let ExcerciseItAll() =
+ let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
+ let unique = Path.Combine(Path.Combine(where, Guid.NewGuid().ToString()), "nonesuch.txt")
+ maybeDeleteFile unique
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> File.Delete unique) ignore
+ )
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> IOException() |> raise) ignore
+ )
[]
let WillNotConnectSpontaneously() =
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
let unique = Path.Combine(where, Guid.NewGuid().ToString())
let mutable client = Tracer.Create unique
- try
- client <- client.OnStart()
- Assert.True(client.IsConnected |> not)
- with _ ->
- client.Close()
- reraise()
+ let close = (fun () -> client.Close())
+
+ maybeReraise
+ (fun () ->
+ client <- client.OnStart()
+ Assert.True(client.IsConnected |> not)
+ close())
+ close
[]
let ValidTokenWillConnect() =
@@ -53,15 +84,15 @@ module AltCoverCoreTests =
use formatter = new System.IO.BinaryReader(stream)
let rec sink() =
- try
+ maybeIOException (fun () ->
let id = formatter.ReadString()
let strike = formatter.ReadInt32()
let tag = formatter.ReadByte() |> int
(id, strike,
match enum tag with
- | Tag.Time -> Adapter.Time <| formatter.ReadInt64()
+ //| Tag.Time -> Adapter.Time <| formatter.ReadInt64()
| Tag.Call -> Adapter.Call <| formatter.ReadInt32()
- | Tag.Both -> Adapter.NewBoth((formatter.ReadInt64()), (formatter.ReadInt32()))
+ //| Tag.Both -> Adapter.NewBoth((formatter.ReadInt64()), (formatter.ReadInt32()))
| Tag.Table ->
Assert.True(( id = String.Empty ))
Assert.True(( strike = 0 ))
@@ -95,7 +126,7 @@ module AltCoverCoreTests =
(Adapter.NewBoth
((formatter.ReadInt64()), (formatter.ReadInt32())))
tracking()
- | Tag.Table -> Assert.True( false, "No nested tables!!")
+ //| Tag.Table -> Assert.True( false, "No nested tables!!")
| _ -> sequencePoint (pts - 1)
tracking()
else
@@ -105,8 +136,7 @@ module AltCoverCoreTests =
Adapter.Table t
| _ -> Adapter.Null())
|> hits.Add
- sink()
- with :? System.IO.IOException -> ()
+ sink())
sink()
hits
@@ -193,52 +223,52 @@ module AltCoverCoreTests =
(expected
|> Seq.skip 1
|> Seq.head), "unexpected result")
- match results
+
+ let [ n'; p'; d' ] =
+ results
|> Seq.head
|> Adapter.untable
- |> Seq.toList with
- | [ n'; p'; d' ] ->
- let n = n' :?> String
- let p = p' :?> int
- let d = d' :?> Dictionary>
- Assert.True( n |> Seq.isEmpty )
- Assert.True(( p = 0 ))
- Assert.True(( d.Count = 1 ))
- Assert.True( d.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Key)
- |> Seq.toList =
- (t.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Key)
- |> Seq.toList) )
- let left =
- d.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Value.Count)
|> Seq.toList
+ let n = n' :?> String
+ let p = p' :?> int
+ let d = d' :?> Dictionary>
+ Assert.True( n |> Seq.isEmpty )
+ Assert.True(( p = 0 ))
+ Assert.True(( d.Count = 1 ))
+ Assert.True( d.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Key)
+ |> Seq.toList =
+ (t.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Key)
+ |> Seq.toList) )
+ let left =
+ d.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Value.Count)
+ |> Seq.toList
- let right =
- t.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Value.Count)
- |> Seq.toList
+ let right =
+ t.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Value.Count)
+ |> Seq.toList
- Assert.True(( left = right ))
- let left2 =
- d.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Value.Tracks |> Seq.toList)
- |> Seq.toList
+ Assert.True(( left = right ))
+ let left2 =
+ d.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Value.Tracks |> Seq.toList)
+ |> Seq.toList
- let right2 =
- t.["name"]
- |> Seq.sortBy (fun kv -> kv.Key)
- |> Seq.map (fun kv -> kv.Value.Tracks |> Seq.toList)
- |> Seq.toList
+ let right2 =
+ t.["name"]
+ |> Seq.sortBy (fun kv -> kv.Key)
+ |> Seq.map (fun kv -> kv.Value.Tracks |> Seq.toList)
+ |> Seq.toList
- Assert.True(( left2 = right2 ))
- | _ -> Assert.True( false )
+ Assert.True(( left2 = right2 ))
finally
Adapter.VisitsClear()
diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index 0e0869900..342aeac27 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -2,6 +2,35 @@ Q. Never mind the fluff -- how do I get started?
A. Start with the Quick Start guide : https://github.com/SteveGilham/altcover/wiki/QuickStart-Guide
+# 7.1.795 (Genbu series release 7)
+* [BUGFIX] Make LCov tracefile output follow what is actually generated, and not just what the `man` page says
+* As well as interfaces, hide other types with no non-abstract methods (e.g. plain enums) in the coverage
+* Show the branch in `public int string Ternary(bool select) => !select ? Left : Right;` just like it is shown in `public int Ternary (bool select, int left, int right) { return select ? left : right; }`.
+* For records, add `entry` and `exit` attributes as semicolon separated lists of the UTC times in ticks at which the method was entered and returns
+* For `dotnet test ... /p:AltCoverXmlReport=...` , if the value for the report file path contains one of the following literals
+ * $(ProjectName)
+ * $(SolutionDir)
+ * $([System.Guid]::NewGuid())
+ then substitute in the actual values of those build parameters where they haven't already been replaced by MSBuild.
+ Example: Using `/p:AltCoverXmlReport=$(SolutionDir)/_Reports/solution.$(ProjectName).xml` with `dotnet test` of a solution to place distinctly named report files in a common folder.
+Also
+* Rationalise .net versions to help speed up the build and ease the net5.0 transition
+ * Clear out some corner case differences between .net core and .net framework builds based on old work-arounds for symbol writing for the instrumented files
+ * Build the recorder at `net20` only and use the same assembly everywhere
+ * Move all the core logic from `AltCover.exe/.dll` to `AltCover.Engine.dll`
+ * Unify the three different entry-point assembly instances into the now shim-like `AltCover.exe/.dll`
+ * Build everything against `netstandard2.0` except executable shims and unit tests (tests at `netcoreapp3.0` by default)
+ * Build `AltCover.exe/.dll` against `net472` for framework support, `netcoreapp2.1` for the global tool and `netcoreapp2.0` for everywhere else
+ * Build the GTK2 visualizer against `net472` for consistency
+ * `net472` debug builds for published libraries are retained purely for FxCop consumption
+* Collect coverage from unit tests at build time too
+
+# 7.1.783 (Genbu series release 6a)
+* [Visualizer-global-tool]
+ * [BUGFIX] Don't NRE when cancelling a File Open dialog when Avalonia uses its GTK binding (Linux)
+ * Support font selection on Windows natively (monospace fonts only)
+ * On non-Windows platforms, if Tcl/Tk `wish` is present, use that to perform font selection (choose wisely)
+
# 7.1.782 (Genbu series release 6)
* [BUGFIX] Don't throw NRE when encountering an interface with a default method implementation
* Omit interfaces without default method implementations from coverage recording, to match the behaviour of OpenCover (Issue #91)
diff --git a/Sample1/sample1.core.csproj b/Sample1/Sample1.csproj
similarity index 100%
rename from Sample1/sample1.core.csproj
rename to Sample1/Sample1.csproj
diff --git a/Sample10/sample10.core.csproj b/Sample10/Sample10.csproj
similarity index 98%
rename from Sample10/sample10.core.csproj
rename to Sample10/Sample10.csproj
index 6ffeb713e..64586d161 100644
--- a/Sample10/sample10.core.csproj
+++ b/Sample10/Sample10.csproj
@@ -16,9 +16,9 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers
diff --git a/Sample11/sample11.core.csproj b/Sample11/Sample11.csproj
similarity index 86%
rename from Sample11/sample11.core.csproj
rename to Sample11/Sample11.csproj
index 1ea8b1760..e8dba0efe 100644
--- a/Sample11/sample11.core.csproj
+++ b/Sample11/Sample11.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;net461
+ netstandard2.0;net472
Sample11
false
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
@@ -17,9 +17,9 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Sample12/sample12.core.csproj b/Sample12/Sample12.csproj
similarity index 88%
rename from Sample12/sample12.core.csproj
rename to Sample12/Sample12.csproj
index 5038205af..d878ac699 100644
--- a/Sample12/sample12.core.csproj
+++ b/Sample12/Sample12.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.0;net462
+ netcoreapp2.0;net472
Sample12
false
@@ -17,10 +17,9 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
\ No newline at end of file
diff --git a/Sample13/sample13.core.fsproj b/Sample13/Sample13.fsproj
similarity index 90%
rename from Sample13/sample13.core.fsproj
rename to Sample13/Sample13.fsproj
index 49347c666..1fb6ed999 100644
--- a/Sample13/sample13.core.fsproj
+++ b/Sample13/Sample13.fsproj
@@ -12,7 +12,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
@@ -20,7 +20,7 @@
-
+
\ No newline at end of file
diff --git a/Sample15/Sample15/Sample15.fsproj b/Sample15/Sample15/Sample15.fsproj
index 7ec4be2ca..839d470db 100644
--- a/Sample15/Sample15/Sample15.fsproj
+++ b/Sample15/Sample15/Sample15.fsproj
@@ -1,68 +1,33 @@
-
-
-
+
- Debug
- AnyCPU
- 2.0
- 36beb42e-f38e-4cae-85f4-254581ebb300
- Library
- Sample15
- Sample15
true
- v4.6.2
+ net472
true
Sample15
- true
full
- false
false
bin\$(Configuration)\
- DEBUG;TRACE
3
bin\$(Configuration)\$(AssemblyName).XML
pdbonly
- true
true
bin\$(Configuration)\
- TRACE
3
bin\$(Configuration)\$(AssemblyName).XML
-
- 11
-
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
+
+
-
- ..\packages\FSharp.Core.4.5.2\lib\net45\FSharp.Core.dll
-
-
-
-
-
- ..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll
- True
-
-
\ No newline at end of file
diff --git a/Sample15/Sample15/packages.config b/Sample15/Sample15/packages.config
deleted file mode 100644
index 79f3a9eca..000000000
--- a/Sample15/Sample15/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/Sample16/sample16.core.csproj b/Sample16/Sample16.csproj
similarity index 88%
rename from Sample16/sample16.core.csproj
rename to Sample16/Sample16.csproj
index 8b8aa79b3..29ab2f072 100644
--- a/Sample16/sample16.core.csproj
+++ b/Sample16/Sample16.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;net461
+ netstandard2.0;net472
Sample16
false
@@ -15,6 +15,7 @@
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
+
@@ -27,9 +28,9 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Sample16/Test/Issue72.sln b/Sample16/Test/Issue72.sln
new file mode 100644
index 000000000..568b88dab
--- /dev/null
+++ b/Sample16/Test/Issue72.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29306.81
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample16", "..\Sample16.csproj", "{A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test", "_Issue72\Test.csproj", "{28E8C986-A229-40C7-A2C5-F73A5C4A7153}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test2", "_Issue72b\Test2.csproj", "{C6ED2087-CC79-4206-BB08-3D9F9F2D4813}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28E8C986-A229-40C7-A2C5-F73A5C4A7153}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28E8C986-A229-40C7-A2C5-F73A5C4A7153}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28E8C986-A229-40C7-A2C5-F73A5C4A7153}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28E8C986-A229-40C7-A2C5-F73A5C4A7153}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6ED2087-CC79-4206-BB08-3D9F9F2D4813}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6ED2087-CC79-4206-BB08-3D9F9F2D4813}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6ED2087-CC79-4206-BB08-3D9F9F2D4813}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C6ED2087-CC79-4206-BB08-3D9F9F2D4813}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FB3BB358-5322-458C-A326-B25DE13DE7DF}
+ EndGlobalSection
+EndGlobal
diff --git a/Sample16/Test/sample16.core.sln b/Sample16/Test/Sample16.sln
similarity index 87%
rename from Sample16/Test/sample16.core.sln
rename to Sample16/Test/Sample16.sln
index d822ddb75..9b5cf2ba8 100644
--- a/Sample16/Test/sample16.core.sln
+++ b/Sample16/Test/Sample16.sln
@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29306.81
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sample16.core", "..\sample16.core.csproj", "{A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sample16", "..\Sample16.csproj", "{A1CF912B-AEFA-4FE7-951E-B4FDBB921AD9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{28E8C986-A229-40C7-A2C5-F73A5C4A7153}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test", "Test\Test.csproj", "{28E8C986-A229-40C7-A2C5-F73A5C4A7153}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Sample16/Test/Test/Test.csproj b/Sample16/Test/Test/Test.csproj
index d95dbecb6..59a61ccb6 100644
--- a/Sample16/Test/Test/Test.csproj
+++ b/Sample16/Test/Test/Test.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/Sample17/sample17.core.fsproj b/Sample17/Sample17.fsproj
similarity index 78%
rename from Sample17/sample17.core.fsproj
rename to Sample17/Sample17.fsproj
index e5e00c531..2a73f38c0 100644
--- a/Sample17/sample17.core.fsproj
+++ b/Sample17/Sample17.fsproj
@@ -1,7 +1,7 @@
- netcoreapp2.0;net46
+ netcoreapp2.0;net472
Sample17
$(AssetTargetFallback);netcoreapp1.0;
@@ -21,12 +21,11 @@
-
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Sample18/sample18.core.fsproj b/Sample18/Sample18.fsproj
similarity index 76%
rename from Sample18/sample18.core.fsproj
rename to Sample18/Sample18.fsproj
index 6d286600b..46048df3e 100644
--- a/Sample18/sample18.core.fsproj
+++ b/Sample18/Sample18.fsproj
@@ -1,13 +1,13 @@
- netcoreapp3.0;net47
+ netcoreapp3.0;net472
false
Sample18
false
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
-
+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
+
@@ -18,14 +18,14 @@
all
runtime; build; native; contentfiles; analyzers
-
+
-
-
+
+
..\ThirdParty\Unquote.dll
-
+
all
runtime; build; native; contentfiles; analyzers
@@ -33,14 +33,13 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
\ No newline at end of file
diff --git a/Sample2/sample2.core.fsproj b/Sample2/Sample2.fsproj
similarity index 82%
rename from Sample2/sample2.core.fsproj
rename to Sample2/Sample2.fsproj
index faf6cf006..f87e77bfc 100644
--- a/Sample2/sample2.core.fsproj
+++ b/Sample2/Sample2.fsproj
@@ -1,7 +1,7 @@
- netcoreapp2.1;net461
+ netcoreapp2.1;net472
Sample2
$(AssetTargetFallback);netcoreapp1.0;
false
@@ -24,28 +24,27 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
..\ThirdParty\Unquote.dll
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
\ No newline at end of file
diff --git a/Sample20/AbstractClass.cs b/Sample20/AbstractClass.cs
new file mode 100644
index 000000000..6baaf0f8a
--- /dev/null
+++ b/Sample20/AbstractClass.cs
@@ -0,0 +1,54 @@
+using System;
+
+namespace Test
+{
+ public abstract class AbstractClass
+ {
+ public AbstractClass()
+ {
+ Console.WriteLine("AbstractClass constructed");
+ }
+
+ public abstract void Method1();
+
+ public abstract void Method2();
+ }
+
+ public class AbstractClass_SampleImpl1 : AbstractClass
+ {
+ public AbstractClass_SampleImpl1()
+ : base()
+ {
+ Console.WriteLine("SampleImpl1 constructed");
+ }
+
+ public override void Method1()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Method2()
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public class AbstractClass_SampleImpl2 : AbstractClass
+ {
+ public AbstractClass_SampleImpl2()
+ : base()
+ {
+ Console.WriteLine("SampleImpl2 constructed");
+ }
+
+ public override void Method1()
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Method2()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Sample20/AnalyzerTestClass.cs b/Sample20/AnalyzerTestClass.cs
new file mode 100644
index 000000000..45f269a8e
--- /dev/null
+++ b/Sample20/AnalyzerTestClass.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+
+namespace Test
+{
+ public class AnalyzerTestClass
+ {
+ public AnalyzerTestClass()
+ {
+ Console.WriteLine(".ctor");
+ }
+
+ public string DoSomething(
+ string value,
+ string[] stringArray,
+ Guid id,
+ IEnumerable stringEnumerable,
+ IList stringList,
+ decimal dec,
+ int i,
+ long l,
+ Dictionary dict,
+ out int g,
+ float fff,
+ double dou,
+ bool bo,
+ byte by,
+ char ch,
+ object o,
+ sbyte sby,
+ short sh,
+ uint ui,
+ ulong ul,
+ ushort usho)
+ {
+ g = 0;
+ return null;
+ }
+
+ public void GenericMethod(T1 t1, T2 t2, int i)
+ {
+ }
+
+ public string AutoProperty { get; set; }
+ }
+}
diff --git a/Sample20/AsyncClass.cs b/Sample20/AsyncClass.cs
new file mode 100644
index 000000000..1b291474b
--- /dev/null
+++ b/Sample20/AsyncClass.cs
@@ -0,0 +1,15 @@
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Test
+{
+ public class AsyncClass : DelegatingHandler
+ {
+ protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ request.Properties.Add("hello", true);
+ return await base.SendAsync(request, cancellationToken);
+ }
+ }
+}
diff --git a/Sample20/ClassWithExcludes.cs b/Sample20/ClassWithExcludes.cs
new file mode 100644
index 000000000..1c3e70976
--- /dev/null
+++ b/Sample20/ClassWithExcludes.cs
@@ -0,0 +1,22 @@
+
+namespace Test
+{
+ public class ClassWithExcludes
+ {
+ public string IncludedProperty { get; set; }
+
+ [CoverageExclude]
+ public string ExcludedProperty { get; set; }
+
+ public void IncludedMethod()
+ {
+ this.IncludedProperty = "Test";
+ }
+
+ [CoverageExclude]
+ public void ExcludedMethod()
+ {
+ this.ExcludedProperty = "Test";
+ }
+ }
+}
diff --git a/Sample20/CodeContract_Contract.cs b/Sample20/CodeContract_Contract.cs
new file mode 100644
index 000000000..bba545197
--- /dev/null
+++ b/Sample20/CodeContract_Contract.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Diagnostics.Contracts;
+
+namespace Test
+{
+ [ContractClassFor(typeof(CodeContract_Interface))]
+ internal abstract class CodeContract_Contract : CodeContract_Interface
+ {
+ public int Calculate(int value)
+ {
+ Contract.Requires(value != 0, "Value must not be zero");
+
+ return default(int);
+ }
+ }
+}
diff --git a/Sample20/CodeContract_Interface.cs b/Sample20/CodeContract_Interface.cs
new file mode 100644
index 000000000..4dec321c4
--- /dev/null
+++ b/Sample20/CodeContract_Interface.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.Contracts;
+using System.Linq;
+using System.Text;
+
+namespace Test
+{
+ [ContractClass(typeof(CodeContract_Contract))]
+ public interface CodeContract_Interface
+ {
+ int Calculate(int value);
+ }
+}
diff --git a/Sample20/CodeContract_Target.cs b/Sample20/CodeContract_Target.cs
new file mode 100644
index 000000000..b8dbe9a3d
--- /dev/null
+++ b/Sample20/CodeContract_Target.cs
@@ -0,0 +1,18 @@
+
+namespace Test
+{
+ public class CodeContract_Target : CodeContract_Interface
+ {
+ public int Calculate(int value)
+ {
+ if (value < 0)
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ }
+}
diff --git a/Sample20/CoverageExcludeAttribute.cs b/Sample20/CoverageExcludeAttribute.cs
new file mode 100644
index 000000000..9729c2bdf
--- /dev/null
+++ b/Sample20/CoverageExcludeAttribute.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace Test
+{
+ [CoverageExclude]
+ [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Class)]
+ public class CoverageExcludeAttribute : Attribute
+ {
+ }
+}
diff --git a/Sample20/GenericClass.cs b/Sample20/GenericClass.cs
new file mode 100644
index 000000000..3babeec8e
--- /dev/null
+++ b/Sample20/GenericClass.cs
@@ -0,0 +1,49 @@
+using System;
+
+namespace Test
+{
+ public abstract class AbstractGenericClass : ISomeClassInterface
+ where TModel : SomeModel
+ where TState : IState
+ {
+ public abstract bool Process(ISomeObjectInterface someObject);
+
+ public virtual bool PostProcess(ISomeObjectInterface someObject)
+ {
+ return true;
+ }
+ }
+
+ public class GenericClass : AbstractGenericClass
+ where TModel : SomeModel
+ where TState : IState
+ {
+ public override bool Process(ISomeObjectInterface someObject)
+ {
+ Console.WriteLine("Process");
+ return true;
+ }
+
+ public override bool PostProcess(ISomeObjectInterface someObject)
+ {
+ Console.WriteLine("PostProcess");
+ return true;
+ }
+ }
+
+ public class SomeModel
+ {
+ }
+
+ public interface IState
+ {
+ }
+
+ public interface ISomeClassInterface
+ {
+ }
+
+ public interface ISomeObjectInterface
+ {
+ }
+}
\ No newline at end of file
diff --git a/Sample20/NotMatchingFileName.cs b/Sample20/NotMatchingFileName.cs
new file mode 100644
index 000000000..db71cf194
--- /dev/null
+++ b/Sample20/NotMatchingFileName.cs
@@ -0,0 +1,8 @@
+
+namespace Test
+{
+ public class SomeClass
+ {
+ public string Property1 { get; set; }
+ }
+}
diff --git a/Sample20/PartialClass.cs b/Sample20/PartialClass.cs
new file mode 100644
index 000000000..1be933e23
--- /dev/null
+++ b/Sample20/PartialClass.cs
@@ -0,0 +1,36 @@
+using System;
+
+namespace Test
+{
+ partial class PartialClass
+ {
+ public void ExecutedMethod_1()
+ {
+ Console.WriteLine("Test");
+ }
+
+ public void UnExecutedMethod_1()
+ {
+ Console.WriteLine("Test");
+ }
+
+ private int someProperty;
+
+ public int SomeProperty
+ {
+ get { return this.someProperty; }
+
+ set
+ {
+ if (value < 0)
+ {
+ this.someProperty = 0;
+ }
+ else
+ {
+ this.someProperty = value;
+ }
+ }
+ }
+ }
+}
diff --git a/Sample20/PartialClass2.cs b/Sample20/PartialClass2.cs
new file mode 100644
index 000000000..8f8e36740
--- /dev/null
+++ b/Sample20/PartialClass2.cs
@@ -0,0 +1,17 @@
+using System;
+
+namespace Test
+{
+ partial class PartialClass
+ {
+ public void ExecutedMethod_2()
+ {
+ Console.WriteLine("Test");
+ }
+
+ public void UnExecutedMethod_2()
+ {
+ Console.WriteLine("Test");
+ }
+ }
+}
diff --git a/Sample20/PartialClassWithAutoProperties.cs b/Sample20/PartialClassWithAutoProperties.cs
new file mode 100644
index 000000000..cd0e7dfa2
--- /dev/null
+++ b/Sample20/PartialClassWithAutoProperties.cs
@@ -0,0 +1,8 @@
+
+namespace Test
+{
+ public partial class PartialClassWithAutoProperties
+ {
+ public string Property1 { get; set; }
+ }
+}
diff --git a/Sample20/PartialClassWithAutoProperties2.cs b/Sample20/PartialClassWithAutoProperties2.cs
new file mode 100644
index 000000000..8302b1ecb
--- /dev/null
+++ b/Sample20/PartialClassWithAutoProperties2.cs
@@ -0,0 +1,10 @@
+
+namespace Test
+{
+ public partial class PartialClassWithAutoProperties
+ {
+ public string Property2 { get; set; }
+
+ public string ExpressionBodiedProperty => "Test";
+ }
+}
diff --git a/Sample20/Program.cs b/Sample20/Program.cs
new file mode 100644
index 000000000..aa1469567
--- /dev/null
+++ b/Sample20/Program.cs
@@ -0,0 +1,70 @@
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Test
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+ new TestClass().SampleFunction();
+
+ new TestClass2("Test").ExecutedMethod();
+ new TestClass2("Test").SampleFunction("Munich");
+
+ new PartialClass().ExecutedMethod_1();
+ new PartialClass().ExecutedMethod_2();
+ new PartialClass().SomeProperty = -10;
+
+ new PartialClassWithAutoProperties().Property1 = "Test";
+ new PartialClassWithAutoProperties().Property2 = "Test";
+
+ new SomeClass().Property1 = "Test";
+
+ new ClassWithExcludes().IncludedMethod();
+ new ClassWithExcludes().ExcludedMethod();
+
+ new GenericClass().Process(null);
+ new GenericClass().PostProcess(null);
+
+ new CodeContract_Target().Calculate(-1);
+
+ new AbstractClass_SampleImpl1();
+ new AbstractClass_SampleImpl2();
+
+ CallAsyncMethod();
+
+ try
+ {
+ new CodeContract_Target().Calculate(0);
+ }
+ catch (System.ArgumentException)
+ {
+ }
+ }
+
+ private static async void CallAsyncMethod()
+ {
+ var expected = new HttpResponseMessage();
+ var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
+ var invoker = new HttpMessageInvoker(handler, false);
+ var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
+ }
+
+ private class EchoHandler : DelegatingHandler
+ {
+ private HttpResponseMessage _response;
+
+ public EchoHandler(HttpResponseMessage response)
+ {
+ this._response = response;
+ }
+
+ protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ return Task.FromResult(this._response);
+ }
+ }
+ }
+}
diff --git a/Sample20/Reports/Cobertura_altcover.xml b/Sample20/Reports/Cobertura_altcover.xml
new file mode 100644
index 000000000..dfac9dcd9
--- /dev/null
+++ b/Sample20/Reports/Cobertura_altcover.xml
@@ -0,0 +1,698 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sample20/Reports/Cobertura_coverlet.xml b/Sample20/Reports/Cobertura_coverlet.xml
new file mode 100644
index 000000000..58b6ff4df
--- /dev/null
+++ b/Sample20/Reports/Cobertura_coverlet.xml
@@ -0,0 +1,760 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sample20/Reports/DynamicCodeCoverage.xml b/Sample20/Reports/DynamicCodeCoverage.xml
new file mode 100644
index 000000000..efc15063b
--- /dev/null
+++ b/Sample20/Reports/DynamicCodeCoverage.xml
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sample20/Reports/MultiDynamicCodeCoverage.xml b/Sample20/Reports/MultiDynamicCodeCoverage.xml
new file mode 100644
index 000000000..c37cb7cd1
--- /dev/null
+++ b/Sample20/Reports/MultiDynamicCodeCoverage.xml
@@ -0,0 +1,397 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/MultiNCover1.5.8.xml b/Sample20/Reports/MultiNCover1.5.8.xml
new file mode 100644
index 000000000..5f1f18b38
--- /dev/null
+++ b/Sample20/Reports/MultiNCover1.5.8.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/MultiOpenCover.xml b/Sample20/Reports/MultiOpenCover.xml
new file mode 100644
index 000000000..528b48511
--- /dev/null
+++ b/Sample20/Reports/MultiOpenCover.xml
@@ -0,0 +1,1300 @@
+
+
+
+
+
+ C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
+ mscorlib
+
+
+
+
+ C:\temp\Test.exe
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+ <Module>
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+ 100663297
+ System.String Test.ClassWithExcludes::get_IncludedProperty()
+
+
+
+
+
+
+ 100663298
+ System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+
+
+
+
+
+ 100663299
+ System.String Test.ClassWithExcludes::get_ExcludedProperty()
+
+
+ 100663300
+ System.Void Test.ClassWithExcludes::set_ExcludedProperty(System.String)
+
+
+
+ 100663301
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+ 100663302
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+ 100663303
+ System.Void Test.ClassWithExcludes::.ctor()
+
+
+
+
+
+
+
+ Test.CoverageExcludeAttribute
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+ 100663306
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+ 100663307
+ System.Void Test.AbstractGenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+ 100663308
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663309
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663310
+ System.Void Test.GenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeModel
+
+
+
+ 100663311
+ System.Void Test.SomeModel::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeClass
+
+
+
+ 100663312
+ System.String Test.SomeClass::get_Property1()
+
+
+
+
+
+
+ 100663313
+ System.Void Test.SomeClass::set_Property1(System.String)
+
+
+
+
+
+
+ 100663314
+ System.Void Test.SomeClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+ 100663315
+ System.String Test.PartialClassWithAutoProperties::get_Property2()
+
+
+
+
+
+
+ 100663316
+ System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+
+
+
+
+
+
+ 100663317
+ System.String Test.PartialClassWithAutoProperties::get_Property1()
+
+
+
+
+
+
+ 100663318
+ System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+
+
+
+
+
+
+ 100663319
+ System.Void Test.PartialClassWithAutoProperties::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+ 100663324
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+
+ 100663325
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663320
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663321
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663322
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663323
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663326
+ System.Void Test.PartialClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+ 100663327
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663328
+ System.Void Test.Program::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+ 100663329
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663330
+ System.Void Test.TestClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+ 100663331
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+ 100663332
+ System.Void Test.TestClass/NestedClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+ 100663333
+ System.String Test.TestClass2::get_ExecutedProperty()
+
+
+
+
+
+
+ 100663334
+ System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+
+
+
+
+
+
+ 100663335
+ System.String Test.TestClass2::get_UnExecutedProperty()
+
+
+
+
+
+
+ 100663336
+ System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+
+
+
+
+
+
+ 100663337
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663338
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663339
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663340
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663341
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663342
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663343
+ System.Int32 Test.TestClass2::<SampleFunction>b__0(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c__DisplayClass3
+
+
+
+ 100663344
+ System.Void Test.TestClass2/<>c__DisplayClass3::.ctor()
+
+
+
+
+
+
+ 100663345
+ System.Boolean Test.TestClass2/<>c__DisplayClass3::<SampleFunction>b__1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+ <PrivateImplementationDetails>{F3884DA4-FC0C-4E74-B1F5-2C044EEAC1F7}
+
+
+
+
+
+ C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
+ System.Core
+
+
+
+
+
+
+
+
+ C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
+ mscorlib
+
+
+
+
+ C:\temp\Test.exe
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+ <Module>
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+ 100663297
+ System.String Test.ClassWithExcludes::get_IncludedProperty()
+
+
+
+
+
+
+ 100663298
+ System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+
+
+
+
+
+ 100663299
+ System.String Test.ClassWithExcludes::get_ExcludedProperty()
+
+
+ 100663300
+ System.Void Test.ClassWithExcludes::set_ExcludedProperty(System.String)
+
+
+
+ 100663301
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+ 100663302
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+ 100663303
+ System.Void Test.ClassWithExcludes::.ctor()
+
+
+
+
+
+
+
+ Test.CoverageExcludeAttribute
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+ 100663306
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+ 100663307
+ System.Void Test.AbstractGenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+ 100663308
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663309
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663310
+ System.Void Test.GenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeModel
+
+
+
+ 100663311
+ System.Void Test.SomeModel::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeClass
+
+
+
+ 100663312
+ System.String Test.SomeClass::get_Property1()
+
+
+
+
+
+
+ 100663313
+ System.Void Test.SomeClass::set_Property1(System.String)
+
+
+
+
+
+
+ 100663314
+ System.Void Test.SomeClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+ 100663315
+ System.String Test.PartialClassWithAutoProperties::get_Property2()
+
+
+
+
+
+
+ 100663316
+ System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+
+
+
+
+
+
+ 100663317
+ System.String Test.PartialClassWithAutoProperties::get_Property1()
+
+
+
+
+
+
+ 100663318
+ System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+
+
+
+
+
+
+ 100663319
+ System.Void Test.PartialClassWithAutoProperties::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+ 100663324
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+
+ 100663325
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663320
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663321
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663322
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663323
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663326
+ System.Void Test.PartialClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+ 100663327
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663328
+ System.Void Test.Program::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+ 100663329
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663330
+ System.Void Test.TestClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+ 100663331
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+ 100663332
+ System.Void Test.TestClass/NestedClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+ 100663333
+ System.String Test.TestClass2::get_ExecutedProperty()
+
+
+
+
+
+
+ 100663334
+ System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+
+
+
+
+
+
+ 100663335
+ System.String Test.TestClass2::get_UnExecutedProperty()
+
+
+
+
+
+
+ 100663336
+ System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+
+
+
+
+
+
+ 100663337
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663338
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663339
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663340
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663341
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663342
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663343
+ System.Int32 Test.TestClass2::<SampleFunction>b__0(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c__DisplayClass3
+
+
+
+ 100663344
+ System.Void Test.TestClass2/<>c__DisplayClass3::.ctor()
+
+
+
+
+
+
+ 100663345
+ System.Boolean Test.TestClass2/<>c__DisplayClass3::<SampleFunction>b__1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+ <PrivateImplementationDetails>{F3884DA4-FC0C-4E74-B1F5-2C044EEAC1F7}
+
+
+
+
+
+ C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
+ System.Core
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/MultiPartcover2.2.xml b/Sample20/Reports/MultiPartcover2.2.xml
new file mode 100644
index 000000000..46ee167d0
--- /dev/null
+++ b/Sample20/Reports/MultiPartcover2.2.xml
@@ -0,0 +1,461 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Start target
+ open driver pipe
+ modify target environment variables
+ create target process
+ wait for driver connection
+ driver connected successfully
+ send rules to the driver
+ wait for rules confirm
+ Wait results
+ instrument data is being received
+ InstrumentDataReceiveCountersBegin
+ assembly count: 2
+ load assembly Test (5 types)
+ load assembly Test (5 types)
+ InstrumentDataReceiveCountersEnd
+ file list is being received
+ 5 files to load
+ file list load is complete
+ instrument data load complete
+ functions loading is being started
+ functions count 0
+ functions loading is complete
+ request target shutdown
+ Walk results
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Start target
+ open driver pipe
+ modify target environment variables
+ create target process
+ wait for driver connection
+ driver connected successfully
+ send rules to the driver
+ wait for rules confirm
+ Wait results
+ instrument data is being received
+ InstrumentDataReceiveCountersBegin
+ assembly count: 2
+ load assembly Test (5 types)
+ load assembly Test (5 types)
+ InstrumentDataReceiveCountersEnd
+ file list is being received
+ 5 files to load
+ file list load is complete
+ instrument data load complete
+ functions loading is being started
+ functions count 0
+ functions loading is complete
+ request target shutdown
+ Walk results
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/MultiPartcover2.3.xml b/Sample20/Reports/MultiPartcover2.3.xml
new file mode 100644
index 000000000..5a0e5c7d3
--- /dev/null
+++ b/Sample20/Reports/MultiPartcover2.3.xml
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/MultiVisualStudio2010.coveragexml b/Sample20/Reports/MultiVisualStudio2010.coveragexml
new file mode 100644
index 000000000..9c062d6ef
Binary files /dev/null and b/Sample20/Reports/MultiVisualStudio2010.coveragexml differ
diff --git a/Sample20/Reports/MultidotCover.xml b/Sample20/Reports/MultidotCover.xml
new file mode 100644
index 000000000..39ae9b33a
--- /dev/null
+++ b/Sample20/Reports/MultidotCover.xml
@@ -0,0 +1,776 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/NCover1.5.8.xml b/Sample20/Reports/NCover1.5.8.xml
new file mode 100644
index 000000000..60d57fc67
--- /dev/null
+++ b/Sample20/Reports/NCover1.5.8.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/OpenCover.xml b/Sample20/Reports/OpenCover.xml
new file mode 100644
index 000000000..171cbed24
--- /dev/null
+++ b/Sample20/Reports/OpenCover.xml
@@ -0,0 +1,1175 @@
+
+
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
+ 2016-07-16T11:43:57.1242712Z
+ mscorlib
+
+
+
+
+ C:\temp\Test.exe
+ 2016-08-29T19:43:12.0957434Z
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Module>
+
+
+
+
+ Test.AnalyzerTestClass
+
+
+
+ 100663300
+ System.String Test.AnalyzerTestClass::get_AutoProperty()
+
+
+
+
+
+
+
+
+
+ 100663301
+ System.Void Test.AnalyzerTestClass::set_AutoProperty(System.String)
+
+
+
+
+
+
+
+
+
+ 100663297
+ System.Void Test.AnalyzerTestClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663298
+ System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16,ICSharpCode.NRefactory.PatternMatching.INode)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663299
+ System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AsyncClass
+
+
+
+ 100663302
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.AsyncClass::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+ 100663303
+ System.Void Test.AsyncClass::.ctor()
+
+
+
+
+
+
+ 100663304
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.AsyncClass::<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+ Test.AsyncClass/<SendAsync>d__0
+
+
+
+ 100663367
+ System.Void Test.AsyncClass/<SendAsync>d__0::.ctor()
+
+
+
+
+
+
+ 100663368
+ System.Void Test.AsyncClass/<SendAsync>d__0::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663369
+ System.Void Test.AsyncClass/<SendAsync>d__0::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+ 100663305
+ System.String Test.ClassWithExcludes::get_IncludedProperty()
+
+
+
+
+
+
+
+
+
+ 100663306
+ System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+
+
+
+
+
+
+
+
+ 100663307
+ System.String Test.ClassWithExcludes::get_ExcludedProperty()
+
+
+
+
+
+ 100663308
+ System.Void Test.ClassWithExcludes::set_ExcludedProperty(System.String)
+
+
+
+
+
+
+ 100663309
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+ 100663310
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+
+
+ 100663311
+ System.Void Test.ClassWithExcludes::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Contract
+
+
+
+ 100663312
+ System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663313
+ System.Void Test.CodeContract_Contract::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Target
+
+
+
+ 100663315
+ System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663316
+ System.Void Test.CodeContract_Target::.ctor()
+
+
+
+
+
+
+
+ Test.CoverageExcludeAttribute
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+ 100663319
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+ 100663320
+ System.Void Test.AbstractGenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+ 100663321
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663322
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663323
+ System.Void Test.GenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeModel
+
+
+
+ 100663324
+ System.Void Test.SomeModel::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeClass
+
+
+
+ 100663325
+ System.String Test.SomeClass::get_Property1()
+
+
+
+
+
+
+
+
+
+ 100663326
+ System.Void Test.SomeClass::set_Property1(System.String)
+
+
+
+
+
+
+
+
+
+ 100663327
+ System.Void Test.SomeClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+ 100663328
+ System.String Test.PartialClassWithAutoProperties::get_Property2()
+
+
+
+
+
+
+
+
+
+ 100663329
+ System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+
+
+
+
+
+
+
+
+
+ 100663330
+ System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+
+
+
+
+
+
+
+
+
+ 100663331
+ System.String Test.PartialClassWithAutoProperties::get_Property1()
+
+
+
+
+
+
+
+
+
+ 100663332
+ System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+
+
+
+
+
+
+
+
+
+ 100663333
+ System.Void Test.PartialClassWithAutoProperties::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+ 100663338
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+
+ 100663339
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663334
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663335
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663336
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663337
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663340
+ System.Void Test.PartialClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+ 100663341
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663342
+ System.Void Test.Program::CSharp_ExecuteTest1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663343
+ System.Void Test.Program::CSharp_ExecuteTest2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663344
+ System.Void Test.Program::CallAsyncMethod()
+
+
+
+
+
+
+ 100663345
+ System.Void Test.Program::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program/EchoHandler
+
+
+
+ 100663370
+ System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663371
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program/<CallAsyncMethod>d__3
+
+
+
+ 100663372
+ System.Void Test.Program/<CallAsyncMethod>d__3::.ctor()
+
+
+
+
+
+
+ 100663373
+ System.Void Test.Program/<CallAsyncMethod>d__3::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663374
+ System.Void Test.Program/<CallAsyncMethod>d__3::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.AbstractClass
+
+
+
+ 100663346
+ System.Void Test.AbstractClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl1
+
+
+
+ 100663349
+ System.Void Test.AbstractClass_SampleImpl1::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663350
+ System.Void Test.AbstractClass_SampleImpl1::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663351
+ System.Void Test.AbstractClass_SampleImpl1::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl2
+
+
+
+ 100663352
+ System.Void Test.AbstractClass_SampleImpl2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663353
+ System.Void Test.AbstractClass_SampleImpl2::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663354
+ System.Void Test.AbstractClass_SampleImpl2::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+ 100663355
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663356
+ System.Void Test.TestClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+ 100663375
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+ 100663376
+ System.Void Test.TestClass/NestedClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+ 100663357
+ System.String Test.TestClass2::get_ExecutedProperty()
+
+
+
+
+
+
+
+
+
+ 100663358
+ System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+
+
+
+
+
+
+
+
+
+ 100663359
+ System.String Test.TestClass2::get_UnExecutedProperty()
+
+
+
+
+
+
+
+
+
+ 100663360
+ System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+
+
+
+
+
+
+
+
+
+ 100663361
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663362
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663363
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663364
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663365
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663366
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c__DisplayClass14_0
+
+
+
+ 100663377
+ System.Void Test.TestClass2/<>c__DisplayClass14_0::.ctor()
+
+
+
+
+
+
+ 100663378
+ System.Boolean Test.TestClass2/<>c__DisplayClass14_0::<SampleFunction>b__1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c
+
+
+
+ 100663379
+ System.Void Test.TestClass2/<>c::.cctor()
+
+
+
+
+
+
+ 100663380
+ System.Void Test.TestClass2/<>c::.ctor()
+
+
+
+
+
+
+ 100663381
+ System.Int32 Test.TestClass2/<>c::<SampleFunction>b__14_0(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+ <PrivateImplementationDetails>
+
+
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
+ 2016-07-16T11:43:57.1711464Z
+ System.Core
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll
+ 2016-07-16T11:43:55.5773993Z
+ System.Net.Http
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
+ 2016-07-16T11:43:55.5461496Z
+ System
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll
+ 2016-07-16T11:43:53.9992781Z
+ System.Configuration
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll
+ 2016-07-16T11:43:55.4992744Z
+ System.Xml
+
+
+
+
diff --git a/Sample20/Reports/OpenCoverWithTrackedMethods.xml b/Sample20/Reports/OpenCoverWithTrackedMethods.xml
new file mode 100644
index 000000000..e159993e8
--- /dev/null
+++ b/Sample20/Reports/OpenCoverWithTrackedMethods.xml
@@ -0,0 +1,2249 @@
+
+
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
+ 2016-07-16T11:44:20.6085999Z
+ mscorlib
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe
+ 2015-07-06T22:51:38Z
+ MSTest
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Common\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Common.dll
+ 2016-08-14T20:15:34.2701771Z
+ Microsoft.VisualStudio.QualityTools.Common
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
+ 2016-07-16T11:43:55.5461496Z
+ System
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.ExecutionCommon\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll
+ 2016-08-14T20:15:34.7858591Z
+ Microsoft.VisualStudio.QualityTools.ExecutionCommon
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Resource\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Resource.dll
+ 2016-08-14T20:15:34.9577509Z
+ Microsoft.VisualStudio.QualityTools.Resource
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll
+ 2016-07-16T11:43:53.9992781Z
+ System.Configuration
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll
+ 2016-07-16T11:43:55.4992744Z
+ System.Xml
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.CommandLine\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.CommandLine.dll
+ 2016-08-14T20:15:34.0982877Z
+ Microsoft.VisualStudio.QualityTools.CommandLine
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.TMI\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.TMI.dll
+ 2016-08-14T20:15:36.1766323Z
+ Microsoft.VisualStudio.QualityTools.TMI
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll
+ 2016-07-16T11:44:20.5773501Z
+ System.Data
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll
+ 2016-07-16T11:43:55.4992744Z
+ System.Numerics
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll
+ 2016-07-16T11:44:19.4211026Z
+ System.Web
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
+ 2016-07-16T11:43:57.1711464Z
+ System.Core
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip.dll
+ 2016-08-14T20:15:36.0047389Z
+ Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel.dll
+ 2016-08-14T20:15:35.832846Z
+ Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.UnitTestFramework\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
+ 2016-08-14T20:15:36.348528Z
+ Microsoft.VisualStudio.QualityTools.UnitTestFramework
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.AssemblyResolver\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.AssemblyResolver.dll
+ 2016-08-14T20:15:35.6609526Z
+ Microsoft.VisualStudio.QualityTools.Tips.UnitTest.AssemblyResolver
+
+
+
+
+ C:\temp\Test.exe
+ 2016-08-29T19:43:12.0957434Z
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Module>
+
+
+
+
+ Test.AnalyzerTestClass
+
+
+
+ 100663300
+ System.String Test.AnalyzerTestClass::get_AutoProperty()
+
+
+
+
+
+
+
+
+
+ 100663301
+ System.Void Test.AnalyzerTestClass::set_AutoProperty(System.String)
+
+
+
+
+
+
+
+
+
+ 100663297
+ System.Void Test.AnalyzerTestClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663298
+ System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16,ICSharpCode.NRefactory.PatternMatching.INode)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663299
+ System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AsyncClass
+
+
+
+ 100663302
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.AsyncClass::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+ 100663303
+ System.Void Test.AsyncClass::.ctor()
+
+
+
+
+
+
+ 100663304
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.AsyncClass::<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+ Test.AsyncClass/<SendAsync>d__0
+
+
+
+ 100663367
+ System.Void Test.AsyncClass/<SendAsync>d__0::.ctor()
+
+
+
+
+
+
+ 100663368
+ System.Void Test.AsyncClass/<SendAsync>d__0::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663369
+ System.Void Test.AsyncClass/<SendAsync>d__0::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+ 100663305
+ System.String Test.ClassWithExcludes::get_IncludedProperty()
+
+
+
+
+
+
+
+
+
+ 100663306
+ System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663307
+ System.String Test.ClassWithExcludes::get_ExcludedProperty()
+
+
+
+
+
+
+
+
+
+ 100663308
+ System.Void Test.ClassWithExcludes::set_ExcludedProperty(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663309
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663310
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663311
+ System.Void Test.ClassWithExcludes::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Contract
+
+
+
+ 100663312
+ System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663313
+ System.Void Test.CodeContract_Contract::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Target
+
+
+
+ 100663315
+ System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663316
+ System.Void Test.CodeContract_Target::.ctor()
+
+
+
+
+
+
+
+
+ Test.CoverageExcludeAttribute
+
+
+
+ 100663317
+ System.Void Test.CoverageExcludeAttribute::.ctor()
+
+
+
+
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+ 100663319
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+ 100663320
+ System.Void Test.AbstractGenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+ 100663321
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663322
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663323
+ System.Void Test.GenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeModel
+
+
+
+ 100663324
+ System.Void Test.SomeModel::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeClass
+
+
+
+ 100663325
+ System.String Test.SomeClass::get_Property1()
+
+
+
+
+
+
+
+
+
+ 100663326
+ System.Void Test.SomeClass::set_Property1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663327
+ System.Void Test.SomeClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+ 100663328
+ System.String Test.PartialClassWithAutoProperties::get_Property2()
+
+
+
+
+
+
+
+
+
+ 100663329
+ System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663330
+ System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+
+
+
+
+
+
+
+
+
+ 100663331
+ System.String Test.PartialClassWithAutoProperties::get_Property1()
+
+
+
+
+
+
+
+
+
+ 100663332
+ System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663333
+ System.Void Test.PartialClassWithAutoProperties::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+ 100663338
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+
+ 100663339
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663334
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663335
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663336
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663337
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663340
+ System.Void Test.PartialClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+ 100663341
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663342
+ System.Void Test.Program::CSharp_ExecuteTest1()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663343
+ System.Void Test.Program::CSharp_ExecuteTest2()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663344
+ System.Void Test.Program::CallAsyncMethod()
+
+
+
+
+
+
+ 100663345
+ System.Void Test.Program::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program/EchoHandler
+
+
+
+ 100663370
+ System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663371
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program/<CallAsyncMethod>d__3
+
+
+
+ 100663372
+ System.Void Test.Program/<CallAsyncMethod>d__3::.ctor()
+
+
+
+
+
+
+ 100663373
+ System.Void Test.Program/<CallAsyncMethod>d__3::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663374
+ System.Void Test.Program/<CallAsyncMethod>d__3::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.AbstractClass
+
+
+
+ 100663346
+ System.Void Test.AbstractClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl1
+
+
+
+ 100663349
+ System.Void Test.AbstractClass_SampleImpl1::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663350
+ System.Void Test.AbstractClass_SampleImpl1::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663351
+ System.Void Test.AbstractClass_SampleImpl1::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl2
+
+
+
+ 100663352
+ System.Void Test.AbstractClass_SampleImpl2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663353
+ System.Void Test.AbstractClass_SampleImpl2::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663354
+ System.Void Test.AbstractClass_SampleImpl2::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+ 100663355
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663356
+ System.Void Test.TestClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+ 100663375
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+ 100663376
+ System.Void Test.TestClass/NestedClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+ 100663357
+ System.String Test.TestClass2::get_ExecutedProperty()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663358
+ System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663359
+ System.String Test.TestClass2::get_UnExecutedProperty()
+
+
+
+
+
+
+
+
+
+ 100663360
+ System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+
+
+
+
+
+
+
+
+
+ 100663361
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663362
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663363
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663364
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663365
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663366
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c__DisplayClass14_0
+
+
+
+ 100663377
+ System.Void Test.TestClass2/<>c__DisplayClass14_0::.ctor()
+
+
+
+
+
+
+ 100663378
+ System.Boolean Test.TestClass2/<>c__DisplayClass14_0::<SampleFunction>b__1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c
+
+
+
+ 100663379
+ System.Void Test.TestClass2/<>c::.cctor()
+
+
+
+
+
+
+ 100663380
+ System.Void Test.TestClass2/<>c::.ctor()
+
+
+
+
+
+
+ 100663381
+ System.Int32 Test.TestClass2/<>c::<SampleFunction>b__14_0(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <PrivateImplementationDetails>
+
+
+
+
+
+
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll
+ 2016-07-16T11:43:55.5773993Z
+ System.Net.Http
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.ControllerObject\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.ControllerObject.dll
+ 2016-08-14T20:15:34.4420711Z
+ Microsoft.VisualStudio.QualityTools.ControllerObject
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.TeamSystem.Licensing.dll
+ 2015-07-06T22:51:38Z
+ Microsoft.VisualStudio.TeamSystem.Licensing
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Common\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Common.dll
+ 2016-08-14T20:15:34.2701771Z
+ Microsoft.VisualStudio.QualityTools.Common
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\Microsoft.VisualStudio.TeamSystem.Licensing.dll
+ 2015-07-06T22:51:38Z
+ Microsoft.VisualStudio.TeamSystem.Licensing
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Common\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Common.dll
+ 2016-08-14T20:15:34.2701771Z
+ Microsoft.VisualStudio.QualityTools.Common
+
+
+
+ C:\temp\ICSharpCode.NRefactory.dll
+ 2015-09-02T19:41:12.8563378Z
+ ICSharpCode.NRefactory
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
+ 2016-07-16T11:43:55.5461496Z
+ System
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
+ 2016-07-16T11:43:57.1711464Z
+ System.Core
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll
+ 2016-07-16T11:43:55.4992744Z
+ System.Xml
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll
+ 2016-07-16T11:43:55.5773993Z
+ System.Net.Http
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.AgentProcessManager\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.AgentProcessManager.dll
+ 2016-08-14T20:15:33.9263914Z
+ Microsoft.VisualStudio.QualityTools.AgentProcessManager
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.DataCollectionAgentObject\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.DataCollectionAgentObject.dll
+ 2016-08-14T20:15:34.6139657Z
+ Microsoft.VisualStudio.QualityTools.DataCollectionAgentObject
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Common\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Common.dll
+ 2016-08-14T20:15:34.2701771Z
+ Microsoft.VisualStudio.QualityTools.Common
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.ExecutionCommon\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.ExecutionCommon.dll
+ 2016-08-14T20:15:34.7858591Z
+ Microsoft.VisualStudio.QualityTools.ExecutionCommon
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.AgentObject\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.AgentObject.dll
+ 2016-08-14T20:15:33.7544957Z
+ Microsoft.VisualStudio.QualityTools.AgentObject
+
+
+
+ C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter.dll
+ 2016-08-14T20:15:35.4890597Z
+ Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\DataCollectors\Microsoft.VisualStudio.PerformanceTools.DataCollection.dll
+ 2015-07-06T22:51:38Z
+ Microsoft.VisualStudio.PerformanceTools.DataCollection
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\DataCollectors\Microsoft.VisualStudio.PerformanceTools.DataCollection.Editor.dll
+ 2015-07-06T22:51:38Z
+ Microsoft.VisualStudio.PerformanceTools.DataCollection.Editor
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll
+ 2016-07-16T11:43:55.4680251Z
+ System.Windows.Forms
+
+
+
+ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll
+ 2016-07-16T11:43:59.3586429Z
+ System.Drawing
+
+
+
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\DataCollectors\VSPerfControl.Interop.dll
+ 2015-07-06T22:51:38Z
+ VSPerfControl.Interop
+
+
+
+
diff --git a/Sample20/Reports/OpenCover_altcover.xml b/Sample20/Reports/OpenCover_altcover.xml
new file mode 100644
index 000000000..aaa27cba1
--- /dev/null
+++ b/Sample20/Reports/OpenCover_altcover.xml
@@ -0,0 +1,938 @@
+
+
+
+
+
+
+ C:\temp\Test.dll
+ 2018-10-17T19:02:11.4516973Z
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Module>
+
+
+
+
+ Test.AbstractClass
+
+
+
+ 100663297
+ System.Void Test.AbstractClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl1
+
+
+
+ 100663300
+ System.Void Test.AbstractClass_SampleImpl1::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663301
+ System.Void Test.AbstractClass_SampleImpl1::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663302
+ System.Void Test.AbstractClass_SampleImpl1::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl2
+
+
+
+ 100663303
+ System.Void Test.AbstractClass_SampleImpl2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663304
+ System.Void Test.AbstractClass_SampleImpl2::Method1()
+
+
+
+
+
+
+
+
+
+
+ 100663305
+ System.Void Test.AbstractClass_SampleImpl2::Method2()
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AnalyzerTestClass
+
+
+
+ 100663306
+ System.Void Test.AnalyzerTestClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663307
+ System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663308
+ System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AsyncClass
+
+
+
+ 100663311
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.AsyncClass::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+ 100663312
+ System.Void Test.AsyncClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.AsyncClass/<SendAsync>d__0
+
+
+
+ 100663366
+ System.Void Test.AsyncClass/<SendAsync>d__0::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663367
+ System.Void Test.AsyncClass/<SendAsync>d__0::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+ 100663318
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+ 100663319
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+ 100663320
+ System.Void Test.ClassWithExcludes::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Contract
+
+
+
+ 100663321
+ System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663322
+ System.Void Test.CodeContract_Contract::.ctor()
+
+
+
+
+
+
+
+
+ Test.CodeContract_Interface
+
+
+
+
+ Test.CodeContract_Target
+
+
+
+ 100663324
+ System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663325
+ System.Void Test.CodeContract_Target::.ctor()
+
+
+
+
+
+
+
+
+ Test.CoverageExcludeAttribute
+
+
+
+ 100663326
+ System.Void Test.CoverageExcludeAttribute::.ctor()
+
+
+
+
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+ 100663328
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+ 100663329
+ System.Void Test.AbstractGenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+ 100663330
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663331
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663332
+ System.Void Test.GenericClass`2::.ctor()
+
+
+
+
+
+
+
+
+ Test.SomeModel
+
+
+
+ 100663333
+ System.Void Test.SomeModel::.ctor()
+
+
+
+
+
+
+
+
+ Test.IState
+
+
+
+
+ Test.ISomeClassInterface`2
+
+
+
+
+ Test.ISomeObjectInterface`2
+
+
+
+
+ Test.SomeClass
+
+
+
+ 100663336
+ System.Void Test.SomeClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+ 100663337
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663338
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+ 100663339
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+
+ 100663340
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663341
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663342
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+ 100663343
+ System.Void Test.PartialClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+ 100663348
+ System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+
+
+
+
+
+
+
+
+
+ 100663349
+ System.Void Test.PartialClassWithAutoProperties::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+ 100663350
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663351
+ System.Void Test.Program::CallAsyncMethod()
+
+
+
+
+
+
+ 100663352
+ System.Void Test.Program::.ctor()
+
+
+
+
+
+
+
+
+ Test.Program/EchoHandler
+
+
+
+ 100663368
+ System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663369
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program/<CallAsyncMethod>d__1
+
+
+
+ 100663371
+ System.Void Test.Program/<CallAsyncMethod>d__1::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663372
+ System.Void Test.Program/<CallAsyncMethod>d__1::SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+ 100663353
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663354
+ System.Void Test.TestClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+ 100663373
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+ 100663374
+ System.Void Test.TestClass/NestedClass::.ctor()
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+ 100663359
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663360
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663361
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663362
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663363
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663364
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c__DisplayClass14_0
+
+
+
+ 100663376
+ System.Boolean Test.TestClass2/<>c__DisplayClass14_0::<SampleFunction>b__1(System.String)
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2/<>c
+
+
+
+ 100663379
+ System.Int32 Test.TestClass2/<>c::<SampleFunction>b__14_0(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+ <PrivateImplementationDetails>
+
+
+
+
+ <PrivateImplementationDetails>/__StaticArrayInitTypeSize=16
+
+
+
+
+
+
diff --git a/Sample20/Reports/OpenCover_coverlet.xml b/Sample20/Reports/OpenCover_coverlet.xml
new file mode 100644
index 000000000..c8d9a8cf9
--- /dev/null
+++ b/Sample20/Reports/OpenCover_coverlet.xml
@@ -0,0 +1,816 @@
+
+
+
+
+
+ Test.dll
+ 2018-10-17T07:20:55
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass
+
+
+
+
+ System.Void Test.AbstractClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl1
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl1::Method1()
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl1::Method2()
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl1::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractClass_SampleImpl2
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl2::Method1()
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl2::Method2()
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AbstractClass_SampleImpl2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AnalyzerTestClass
+
+
+
+
+ System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+ System.String Test.AnalyzerTestClass::get_AutoProperty()
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.AnalyzerTestClass::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AsyncClass/<SendAsync>d__0
+
+
+
+
+ System.Void Test.AsyncClass/<SendAsync>d__0::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.ClassWithExcludes
+
+
+
+
+ System.String Test.ClassWithExcludes::get_IncludedProperty()
+
+
+
+
+
+
+
+
+
+
+ System.String Test.ClassWithExcludes::get_ExcludedProperty()
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.ClassWithExcludes::IncludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.ClassWithExcludes::ExcludedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.CodeContract_Contract
+
+
+
+
+ System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.CodeContract_Target
+
+
+
+
+ System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.AbstractGenericClass`2
+
+
+
+
+ System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.GenericClass`2
+
+
+
+
+ System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2<TModel,TState>)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.SomeClass
+
+
+
+
+ System.String Test.SomeClass::get_Property1()
+
+
+
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+
+ System.Void Test.PartialClass::ExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.PartialClass::UnExecutedMethod_1()
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Int32 Test.PartialClass::get_SomeProperty()
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.PartialClass
+
+
+
+
+ System.Void Test.PartialClass::ExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.PartialClass::UnExecutedMethod_2()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+
+ System.String Test.PartialClassWithAutoProperties::get_Property1()
+
+
+
+
+
+
+
+
+
+
+
+ Test.PartialClassWithAutoProperties
+
+
+
+
+ System.String Test.PartialClassWithAutoProperties::get_Property2()
+
+
+
+
+
+
+
+
+
+
+ System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program
+
+
+
+
+ System.Void Test.Program::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program/EchoHandler
+
+
+
+
+ System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage> Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.Program/<CallAsyncMethod>d__1
+
+
+
+
+ System.Void Test.Program/<CallAsyncMethod>d__1::MoveNext()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass
+
+
+
+
+ System.Void Test.TestClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass/NestedClass
+
+
+
+
+ System.Void Test.TestClass/NestedClass::SampleFunction()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Test.TestClass2
+
+
+
+
+ System.String Test.TestClass2::get_ExecutedProperty()
+
+
+
+
+
+
+
+
+
+
+ System.String Test.TestClass2::get_UnExecutedProperty()
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.TestClass2::ExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.TestClass2::UnExecutedMethod()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.TestClass2::SampleFunction(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1<System.String>,System.Collections.Generic.IList`1<System.String>,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2<System.String,System.Int32>,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.TestClass2::.ctor()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Void Test.TestClass2::.ctor(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sample20/Reports/Partcover2.2.xml b/Sample20/Reports/Partcover2.2.xml
new file mode 100644
index 000000000..87a1e9d95
--- /dev/null
+++ b/Sample20/Reports/Partcover2.2.xml
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/Partcover2.3.0.35109.xml b/Sample20/Reports/Partcover2.3.0.35109.xml
new file mode 100644
index 000000000..2e10b9b3c
--- /dev/null
+++ b/Sample20/Reports/Partcover2.3.0.35109.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/Partcover2.3.xml b/Sample20/Reports/Partcover2.3.xml
new file mode 100644
index 000000000..66d9ae463
--- /dev/null
+++ b/Sample20/Reports/Partcover2.3.xml
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/Partcover4.0.10620.xml b/Sample20/Reports/Partcover4.0.10620.xml
new file mode 100644
index 000000000..9b3f3c875
--- /dev/null
+++ b/Sample20/Reports/Partcover4.0.10620.xml
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Reports/VisualStudio2010.coveragexml b/Sample20/Reports/VisualStudio2010.coveragexml
new file mode 100644
index 000000000..15e9daf8b
Binary files /dev/null and b/Sample20/Reports/VisualStudio2010.coveragexml differ
diff --git a/Sample20/Reports/VisualStudio2012.coveragexml b/Sample20/Reports/VisualStudio2012.coveragexml
new file mode 100644
index 000000000..170228f01
Binary files /dev/null and b/Sample20/Reports/VisualStudio2012.coveragexml differ
diff --git a/Sample20/Reports/VisualStudio2013.coveragexml b/Sample20/Reports/VisualStudio2013.coveragexml
new file mode 100644
index 000000000..5b0386f0f
Binary files /dev/null and b/Sample20/Reports/VisualStudio2013.coveragexml differ
diff --git a/Sample20/Reports/dotCover.xml b/Sample20/Reports/dotCover.xml
new file mode 100644
index 000000000..e36e1ebc0
--- /dev/null
+++ b/Sample20/Reports/dotCover.xml
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sample20/Reports/lcov.info b/Sample20/Reports/lcov.info
new file mode 100644
index 000000000..315a707c5
--- /dev/null
+++ b/Sample20/Reports/lcov.info
@@ -0,0 +1,436 @@
+TN:
+SF:C:\temp\AnalyzerTestClass.cs
+FN:46,System.String Test.AnalyzerTestClass::get_AutoProperty()
+FN:46,System.Void Test.AnalyzerTestClass::set_AutoProperty(System.String)
+FN:9,System.Void Test.AnalyzerTestClass::.ctor()
+FN:37,System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16,ICSharpCode.NRefactory.PatternMatching.INode)
+FN:43,System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+FNDA:0,System.String Test.AnalyzerTestClass::get_AutoProperty()
+FNDA:0,System.Void Test.AnalyzerTestClass::set_AutoProperty(System.String)
+FNDA:0,System.Void Test.AnalyzerTestClass::.ctor()
+FNDA:0,System.String Test.AnalyzerTestClass::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Int64,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16,ICSharpCode.NRefactory.PatternMatching.INode)
+FNDA:0,System.Void Test.AnalyzerTestClass::GenericMethod(T1,T2,System.Int32)
+FNF:5
+FNH:0
+BRF:0
+BRH:0
+DA:46,0
+DA:46,0
+DA:9,0
+DA:10,0
+DA:11,0
+DA:12,0
+DA:37,0
+DA:38,0
+DA:39,0
+DA:40,0
+DA:43,0
+DA:44,0
+LH:0
+LF:12
+end_of_record
+SF:C:\temp\AsyncClass.cs
+FN:10,System.Void Test.AsyncClass/d__0::MoveNext()
+FNDA:1,System.Void Test.AsyncClass/d__0::MoveNext()
+FNF:1
+FNH:1
+BRF:0
+BRH:0
+DA:10,1
+DA:11,1
+DA:12,1
+DA:13,1
+LH:4
+LF:4
+end_of_record
+SF:C:\temp\ClassWithExcludes.cs
+FN:6,System.String Test.ClassWithExcludes::get_IncludedProperty()
+FN:6,System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+FN:12,System.Void Test.ClassWithExcludes::IncludedMethod()
+FNDA:0,System.String Test.ClassWithExcludes::get_IncludedProperty()
+FNDA:1,System.Void Test.ClassWithExcludes::set_IncludedProperty(System.String)
+FNDA:1,System.Void Test.ClassWithExcludes::IncludedMethod()
+FNF:6
+FNH:2
+BRF:0
+BRH:0
+DA:6,0
+DA:6,1
+DA:12,1
+DA:13,1
+DA:14,1
+LH:4
+LF:5
+end_of_record
+SF:C:\temp\CodeContract_Contract.cs
+FN:10,System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+FNDA:0,System.Int32 Test.CodeContract_Contract::Calculate(System.Int32)
+FNF:1
+FNH:0
+BRF:0
+BRH:0
+DA:10,0
+DA:11,0
+DA:13,0
+DA:14,0
+LH:0
+LF:4
+end_of_record
+SF:C:\temp\CodeContract_Target.cs
+FN:7,System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+FNDA:2,System.Int32 Test.CodeContract_Target::Calculate(System.Int32)
+FNF:1
+FNH:1
+BRDA:8,43,0,1
+BRDA:8,43,1,1
+BRF:2
+BRH:2
+DA:7,2
+DA:8,2
+DA:9,1
+DA:10,1
+DA:13,1
+DA:14,1
+DA:16,2
+LH:7
+LF:7
+end_of_record
+SF:C:\temp\GenericClass.cs
+FN:12,System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2)
+FN:22,System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2)
+FN:28,System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2)
+FNDA:0,System.Boolean Test.AbstractGenericClass`2::PostProcess(Test.ISomeObjectInterface`2)
+FNDA:1,System.Boolean Test.GenericClass`2::Process(Test.ISomeObjectInterface`2)
+FNDA:1,System.Boolean Test.GenericClass`2::PostProcess(Test.ISomeObjectInterface`2)
+FNF:3
+FNH:2
+BRF:0
+BRH:0
+DA:12,0
+DA:13,0
+DA:14,0
+DA:22,1
+DA:23,1
+DA:24,1
+DA:25,1
+DA:28,1
+DA:29,1
+DA:30,1
+DA:31,1
+LH:8
+LF:11
+end_of_record
+SF:C:\temp\NotMatchingFileName.cs
+FN:6,System.String Test.SomeClass::get_Property1()
+FN:6,System.Void Test.SomeClass::set_Property1(System.String)
+FNDA:0,System.String Test.SomeClass::get_Property1()
+FNDA:1,System.Void Test.SomeClass::set_Property1(System.String)
+FNF:2
+FNH:1
+BRF:0
+BRH:0
+DA:6,0
+DA:6,1
+LH:1
+LF:2
+end_of_record
+SF:C:\temp\PartialClassWithAutoProperties2.cs
+FN:6,System.String Test.PartialClassWithAutoProperties::get_Property2()
+FN:6,System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+FN:8,System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+FNDA:0,System.String Test.PartialClassWithAutoProperties::get_Property2()
+FNDA:1,System.Void Test.PartialClassWithAutoProperties::set_Property2(System.String)
+FNDA:0,System.String Test.PartialClassWithAutoProperties::get_ExpressionBodiedProperty()
+FNF:3
+FNH:1
+BRF:0
+BRH:0
+DA:6,0
+DA:6,1
+DA:8,0
+LH:1
+LF:3
+end_of_record
+SF:C:\temp\PartialClassWithAutoProperties.cs
+FN:6,System.String Test.PartialClassWithAutoProperties::get_Property1()
+FN:6,System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+FNDA:0,System.String Test.PartialClassWithAutoProperties::get_Property1()
+FNDA:1,System.Void Test.PartialClassWithAutoProperties::set_Property1(System.String)
+FNF:2
+FNH:1
+BRF:0
+BRH:0
+DA:6,0
+DA:6,1
+LH:1
+LF:2
+end_of_record
+SF:C:\temp\PartialClass2.cs
+FN:8,System.Void Test.PartialClass::ExecutedMethod_2()
+FN:13,System.Void Test.PartialClass::UnExecutedMethod_2()
+FNDA:1,System.Void Test.PartialClass::ExecutedMethod_2()
+FNDA:0,System.Void Test.PartialClass::UnExecutedMethod_2()
+FNF:2
+FNH:1
+BRF:0
+BRH:0
+DA:8,1
+DA:9,1
+DA:10,1
+DA:13,0
+DA:14,0
+DA:15,0
+LH:3
+LF:6
+end_of_record
+SF:C:\temp\PartialClass.cs
+FN:21,System.Int32 Test.PartialClass::get_SomeProperty()
+FN:24,System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+FN:8,System.Void Test.PartialClass::ExecutedMethod_1()
+FN:13,System.Void Test.PartialClass::UnExecutedMethod_1()
+FNDA:0,System.Int32 Test.PartialClass::get_SomeProperty()
+FNDA:1,System.Void Test.PartialClass::set_SomeProperty(System.Int32)
+FNDA:1,System.Void Test.PartialClass::ExecutedMethod_1()
+FNDA:0,System.Void Test.PartialClass::UnExecutedMethod_1()
+FNF:4
+FNH:2
+BRDA:25,81,0,1
+BRDA:25,81,1,-
+BRF:2
+BRH:1
+DA:21,0
+DA:21,0
+DA:21,0
+DA:24,1
+DA:25,1
+DA:26,1
+DA:27,1
+DA:28,1
+DA:30,0
+DA:31,0
+DA:32,0
+DA:33,1
+DA:8,1
+DA:9,1
+DA:10,1
+DA:13,0
+DA:14,0
+DA:15,0
+LH:9
+LF:18
+end_of_record
+SF:C:\temp\Program.cs
+FN:12,System.Void Test.Program::Main(System.String[])
+FN:51,System.Void Test.Program::CSharp_ExecuteTest1()
+FN:57,System.Void Test.Program::CSharp_ExecuteTest2()
+FN:73,System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+FN:79,System.Threading.Tasks.Task`1 Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+FN:62,System.Void Test.Program/d__3::MoveNext()
+FNDA:1,System.Void Test.Program::Main(System.String[])
+FNDA:0,System.Void Test.Program::CSharp_ExecuteTest1()
+FNDA:0,System.Void Test.Program::CSharp_ExecuteTest2()
+FNDA:1,System.Void Test.Program/EchoHandler::.ctor(System.Net.Http.HttpResponseMessage)
+FNDA:1,System.Threading.Tasks.Task`1 Test.Program/EchoHandler::SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
+FNDA:1,System.Void Test.Program/d__3::MoveNext()
+FNF:6
+FNH:4
+BRF:0
+BRH:0
+DA:12,1
+DA:13,1
+DA:15,1
+DA:16,1
+DA:18,1
+DA:19,1
+DA:20,1
+DA:22,1
+DA:23,1
+DA:25,1
+DA:27,1
+DA:28,1
+DA:30,1
+DA:31,1
+DA:33,1
+DA:35,1
+DA:36,1
+DA:38,1
+DA:41,1
+DA:42,1
+DA:43,1
+DA:44,0
+DA:45,0
+DA:46,0
+DA:47,1
+DA:51,0
+DA:52,0
+DA:53,0
+DA:57,0
+DA:58,0
+DA:59,0
+DA:73,1
+DA:74,1
+DA:75,1
+DA:76,1
+DA:79,1
+DA:80,1
+DA:81,1
+DA:62,1
+DA:63,1
+DA:64,1
+DA:65,1
+DA:66,1
+DA:67,1
+LH:35
+LF:44
+end_of_record
+SF:C:\temp\AbstractClass.cs
+FN:7,System.Void Test.AbstractClass::.ctor()
+FN:20,System.Void Test.AbstractClass_SampleImpl1::.ctor()
+FN:26,System.Void Test.AbstractClass_SampleImpl1::Method1()
+FN:31,System.Void Test.AbstractClass_SampleImpl1::Method2()
+FN:39,System.Void Test.AbstractClass_SampleImpl2::.ctor()
+FN:45,System.Void Test.AbstractClass_SampleImpl2::Method1()
+FN:50,System.Void Test.AbstractClass_SampleImpl2::Method2()
+FNDA:2,System.Void Test.AbstractClass::.ctor()
+FNDA:1,System.Void Test.AbstractClass_SampleImpl1::.ctor()
+FNDA:0,System.Void Test.AbstractClass_SampleImpl1::Method1()
+FNDA:0,System.Void Test.AbstractClass_SampleImpl1::Method2()
+FNDA:1,System.Void Test.AbstractClass_SampleImpl2::.ctor()
+FNDA:0,System.Void Test.AbstractClass_SampleImpl2::Method1()
+FNDA:0,System.Void Test.AbstractClass_SampleImpl2::Method2()
+FNF:7
+FNH:3
+BRF:0
+BRH:0
+DA:7,2
+DA:8,2
+DA:9,2
+DA:10,2
+DA:20,1
+DA:21,1
+DA:22,1
+DA:23,1
+DA:26,0
+DA:27,0
+DA:31,0
+DA:32,0
+DA:39,1
+DA:40,1
+DA:41,1
+DA:42,1
+DA:45,0
+DA:46,0
+DA:50,0
+DA:51,0
+LH:12
+LF:20
+end_of_record
+SF:C:\temp\TestClass.cs
+FN:8,System.Void Test.TestClass::SampleFunction()
+FN:30,System.Void Test.TestClass/NestedClass::SampleFunction()
+FNDA:1,System.Void Test.TestClass::SampleFunction()
+FNDA:0,System.Void Test.TestClass/NestedClass::SampleFunction()
+FNF:2
+FNH:1
+BRDA:17,181,0,1
+BRDA:17,181,1,-
+BRF:2
+BRH:1
+DA:8,1
+DA:9,1
+DA:14,1
+DA:15,1
+DA:17,1
+DA:18,1
+DA:19,1
+DA:20,1
+DA:22,0
+DA:23,0
+DA:24,0
+DA:25,1
+DA:30,0
+DA:31,0
+DA:35,0
+LH:9
+LF:15
+end_of_record
+SF:C:\temp\TestClass2.cs
+FN:13,System.String Test.TestClass2::get_ExecutedProperty()
+FN:13,System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+FN:15,System.String Test.TestClass2::get_UnExecutedProperty()
+FN:15,System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+FN:11,System.Void Test.TestClass2::.ctor()
+FN:11,System.Void Test.TestClass2::.ctor(System.String)
+FN:30,System.Void Test.TestClass2::ExecutedMethod()
+FN:36,System.Void Test.TestClass2::UnExecutedMethod()
+FN:42,System.Void Test.TestClass2::SampleFunction(System.String)
+FN:80,System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+FN:54,System.Boolean Test.TestClass2/<>c__DisplayClass14_0::b__1(System.String)
+FN:45,System.Int32 Test.TestClass2/<>c::b__14_0(System.Int32)
+FNDA:1,System.String Test.TestClass2::get_ExecutedProperty()
+FNDA:2,System.Void Test.TestClass2::set_ExecutedProperty(System.String)
+FNDA:0,System.String Test.TestClass2::get_UnExecutedProperty()
+FNDA:0,System.Void Test.TestClass2::set_UnExecutedProperty(System.String)
+FNDA:0,System.Void Test.TestClass2::.ctor()
+FNDA:2,System.Void Test.TestClass2::.ctor(System.String)
+FNDA:1,System.Void Test.TestClass2::ExecutedMethod()
+FNDA:0,System.Void Test.TestClass2::UnExecutedMethod()
+FNDA:1,System.Void Test.TestClass2::SampleFunction(System.String)
+FNDA:0,System.String Test.TestClass2::DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16)
+FNDA:3,System.Boolean Test.TestClass2/<>c__DisplayClass14_0::b__1(System.String)
+FNDA:4,System.Int32 Test.TestClass2/<>c::b__14_0(System.Int32)
+FNF:12
+FNH:7
+BRDA:54,232,0,1
+BRDA:54,232,1,-
+BRF:2
+BRH:1
+DA:13,1
+DA:13,2
+DA:15,0
+DA:15,0
+DA:11,0
+DA:17,0
+DA:18,0
+DA:19,0
+DA:20,0
+DA:21,0
+DA:11,2
+DA:23,2
+DA:24,2
+DA:25,2
+DA:26,2
+DA:27,2
+DA:30,1
+DA:31,1
+DA:32,1
+DA:33,1
+DA:36,0
+DA:37,0
+DA:38,0
+DA:39,0
+DA:42,1
+DA:43,1
+DA:45,1
+DA:47,1
+DA:47,1
+DA:47,4
+DA:48,4
+DA:49,4
+DA:50,4
+DA:47,5
+DA:52,1
+DA:54,1
+DA:55,1
+DA:56,1
+DA:57,1
+DA:58,1
+DA:80,0
+DA:81,0
+DA:82,0
+DA:83,0
+DA:54,3
+DA:45,4
+LH:30
+LF:46
+end_of_record
diff --git a/Sample20/Reports/mprof-report.xml b/Sample20/Reports/mprof-report.xml
new file mode 100644
index 000000000..f59990260
--- /dev/null
+++ b/Sample20/Reports/mprof-report.xml
@@ -0,0 +1,564 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample20/Test.csproj b/Sample20/Test.csproj
new file mode 100644
index 000000000..2d9796dd6
--- /dev/null
+++ b/Sample20/Test.csproj
@@ -0,0 +1,6 @@
+
+
+ netcoreapp2.0
+ false
+
+
diff --git a/Sample20/TestClass.cs b/Sample20/TestClass.cs
new file mode 100644
index 000000000..5c2edb182
--- /dev/null
+++ b/Sample20/TestClass.cs
@@ -0,0 +1,38 @@
+using System;
+
+namespace Test
+{
+ class TestClass
+ {
+ public void SampleFunction()
+ {
+ string test = string.Format(
+ "{0} {1}",
+ "Hello",
+ "World");
+
+ Console.WriteLine(test);
+ int i = 10;
+
+ if (i > 0 || i > 1)
+ {
+ Console.WriteLine(i + " is greater that 0");
+ }
+ else
+ {
+ Console.WriteLine(i + " is not greater that 0");
+ }
+ }
+
+ public class NestedClass
+ {
+ public void SampleFunction()
+ {
+ Console.WriteLine(
+ "{0} {1}",
+ "Hello",
+ "World");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Sample20/TestClass2.cs b/Sample20/TestClass2.cs
new file mode 100644
index 000000000..0f9299786
--- /dev/null
+++ b/Sample20/TestClass2.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Test
+{
+ class TestClass2
+ {
+ private string name;
+
+ private Dictionary dict = new Dictionary();
+
+ public string ExecutedProperty { get; set; }
+
+ public string UnExecutedProperty { get; set; }
+
+ public TestClass2()
+ {
+ this.name = "Nobody";
+ this.ExecutedProperty = "Nobody";
+ }
+
+ public TestClass2(string name)
+ {
+ this.name = name;
+ this.ExecutedProperty = name + name;
+ }
+
+ public void ExecutedMethod()
+ {
+ Console.WriteLine(this.name);
+ Console.WriteLine(this.ExecutedProperty);
+ }
+
+ public void UnExecutedMethod()
+ {
+ Console.WriteLine(this.name);
+ Console.WriteLine(this.ExecutedProperty);
+ }
+
+ public void SampleFunction(string city)
+ {
+ int[] values = new int[] { 0, 1, 2, 3 };
+
+ var doubled = values.Select(i => i * 2);
+
+ foreach (var item in doubled)
+ {
+ Console.WriteLine(item);
+ }
+
+ string[] cities = new string[] { "Berlin", "Munich", "Paris" };
+
+ if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
+ {
+ Console.WriteLine("Found " + city);
+ }
+ }
+
+ public string DoSomething(string value,
+ string[] stringArray,
+ Guid id,
+ IEnumerable stringEnumerable,
+ IList stringList,
+ decimal dec,
+ int i,
+ Dictionary dict,
+ out int g,
+ float fff,
+ double dou,
+ bool bo,
+ byte by,
+ char ch,
+ object o,
+ sbyte sby,
+ short sh,
+ uint ui,
+ ulong ul,
+ ushort usho)
+ {
+ g = 0;
+ return null;
+ }
+ }
+}
diff --git a/Sample21/Sample21.csproj b/Sample21/Sample21.csproj
index 3f10f7338..196b87a71 100644
--- a/Sample21/Sample21.csproj
+++ b/Sample21/Sample21.csproj
@@ -1,23 +1,25 @@
+
- netcoreapp3.0;net47
- 8.0
+ netcoreapp3.0;net472
+ 8.0
false
-
+
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
runtime; build; native; contentfiles; analyzers
diff --git a/Sample22/Program.fs b/Sample22/Program.fs
new file mode 100644
index 000000000..0695f84c6
--- /dev/null
+++ b/Sample22/Program.fs
@@ -0,0 +1 @@
+module Program = let [] main _ = 0
diff --git a/Sample22/Sample22.xml b/Sample22/Sample22.xml
new file mode 100644
index 000000000..86294a3cd
--- /dev/null
+++ b/Sample22/Sample22.xml
@@ -0,0 +1,32 @@
+
+
+
+ netcoreapp2.1
+ TRACE;DEBUG;CODE_ANALYSIS;GUI
+
+ false
+ false
+
+
+
+ 4
+ true
+
+ 52
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sample22/TestCommon.fs b/Sample22/TestCommon.fs
new file mode 100644
index 000000000..a652f29cd
--- /dev/null
+++ b/Sample22/TestCommon.fs
@@ -0,0 +1,157 @@
+namespace Tests
+
+open System
+open System.IO
+open System.Reflection
+
+#if NETCOREAPP3_0
+open AltCover
+open Expecto
+open Mono.Cecil
+open Mono.Cecil.Cil
+open Mono.Cecil.Rocks
+#endif
+
+type Assert = NUnit.Framework.Assert
+type Does = NUnit.Framework.Does
+type Is = NUnit.Framework.Is
+
+#if NETCOREAPP3_0
+[]
+type TestAttribute() = class
+ inherit Attribute()
+end
+#else
+type TestAttribute = NUnit.Framework.TestAttribute
+#endif
+
+[]
+module TestCommon =
+ let SolutionDir() =
+ AltCover.SolutionRoot.location
+
+ let maybeIOException f =
+ try
+ f()
+ with
+ | :? System.UnauthorizedAccessException
+ | :? IOException -> ()
+
+ let maybeDeleteFile f =
+ if File.Exists f
+ then File.Delete f
+
+ let maybeReraise f g =
+ try
+ f()
+ with _ ->
+ g()
+ reraise()
+
+ let maybe a b c =
+ if a
+ then b
+ else c
+
+ let test x = Swensen.Unquote.Assertions.test x
+
+ let test' x message =
+ try
+ test x
+ with
+ | fail -> Swensen.Unquote.AssertionFailedException(message + Environment.NewLine + fail.Message, fail) |> raise
+
+module TestCommonTests =
+ []
+ let ExerciseItAll() =
+ let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
+ let unique = Path.Combine(Path.Combine(where, Guid.NewGuid().ToString()), "nonesuch.txt")
+ let realDir = Path.Combine(where, Guid.NewGuid().ToString())
+ realDir
+ |> Directory.CreateDirectory
+ |> ignore
+ let another = Path.Combine(realDir, "another.txt")
+ do use _dummy = File.Create another
+ ()
+ maybeDeleteFile another
+ maybeDeleteFile unique
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> File.Delete unique) ignore
+ )
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> IOException() |> raise) ignore
+ )
+ maybeIOException (fun () -> System.UnauthorizedAccessException() |> raise )
+
+ test <@ (maybe true 1 2) = 1 @>
+ test <@ (maybe false 1 2) = 2 @>
+ test <@ SolutionDir() |> String.IsNullOrEmpty |> not @>
+ test <@ SolutionDir() = AltCover.SolutionRoot.location @>
+ test <@ where.StartsWith(AltCover.SolutionRoot.location, StringComparison.Ordinal) @>
+
+ []
+ let SelfTest() =
+ test <@ true @>
+#if NETCOREAPP3_0
+ Assert.Throws(
+#else
+#if (ValidateGendarmeEmulation || GUI)
+ Assert.Throws(
+#else
+ Assert.Throws(
+#endif
+#endif
+ fun () -> test <@ false @> ) |> ignore
+ Assert.Throws(
+ fun () -> test' <@ false @> "junk") |> ignore
+
+#if NETCOREAPP3_0
+module ExpectoTestCommon =
+ let sync = System.Object()
+
+ let consistencyCheck (regular:((unit -> unit)*string) list) expected =
+ let here = System.Reflection.Assembly.GetExecutingAssembly().Location
+ let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(here)
+
+ let testMethods = def.MainModule.GetTypes()
+ |> Seq.collect (fun t -> t.Methods)
+ |> Seq.filter (fun m -> m.CustomAttributes.IsNotNull)
+ |> Seq.filter (fun m -> m.CustomAttributes |> Seq.exists (fun a -> a.AttributeType.Name = "TestAttribute"))
+ |> Seq.map (fun m -> m.DeclaringType.FullName + "::" + m.Name)
+
+ let lookup = def.MainModule.GetAllTypes()
+ |> Seq.filter (fun t -> t.Methods |> Seq.exists(fun m -> m.Name = "Invoke"))
+ |> Seq.map (fun t -> (t.FullName.Replace("/","+"), t.Methods |> Seq.find(fun m -> m.Name = "Invoke")))
+ |> Map.ofSeq
+
+ let calls = regular
+ |> List.map (fst
+ >> (fun f -> f.GetType().FullName.Replace("/","+"))
+ >> (fun f -> Map.find f lookup)
+ >> (fun f -> f.Body.Instructions
+ // Where the test assembly is itself instrumented
+ // we have to allow for calls to AltCover.Recorder.Instance::Visit
+ // or the coverlet equivalent
+ // having been injected into the local function reference
+
+ |> Seq.find (fun i -> i.OpCode = OpCodes.Call
+ && i.Operand.GetType().Name.Equals("MethodDefinition", StringComparison.Ordinal))
+ )
+ >> (fun i -> let m = (i.Operand :?> MethodDefinition)
+ m.DeclaringType.FullName + "::" + m.Name))
+ |> Set.ofList
+
+ let omitted = testMethods
+ |> Seq.filter (fun t -> (Set.contains t calls) |> not)
+ |> Seq.toList
+
+ // cover all but the special cases
+ TestCommon.test <@ omitted = expected @>
+
+ let makeTests name (check:unit -> unit) (regular:((unit -> unit)*string) list) specials pretest =
+ testList name
+ <| (((check, "ConsistencyCheck") :: regular
+ |> List.map (fun (f,name) -> testCase name (fun () -> lock sync (fun () ->
+ pretest()
+ f())))) @ specials)
+#endif
\ No newline at end of file
diff --git a/Sample22/UnitTest1.fs b/Sample22/UnitTest1.fs
new file mode 100644
index 000000000..79d731698
--- /dev/null
+++ b/Sample22/UnitTest1.fs
@@ -0,0 +1,69 @@
+module Sample22
+
+open System.Xml.Linq
+open NUnit.Framework
+open Tests
+
+[]
+let Setup () =
+ ()
+
+let rec RecursiveValidateOpenCover result expected' depth zero expectSkipped =
+ let x name = XName.Get(name)
+ let rcount = result |> Seq.length
+
+ let expected =
+ expected'
+ |> Seq.filter (fun (el : XElement) ->
+ el.Name.LocalName <> "Module" || expectSkipped || "skippedDueTo"
+ |> x
+ |> el.Attributes
+ |> Seq.isEmpty)
+ |> Seq.toList
+
+ let ecount = expected |> Seq.length
+ test' <@ rcount = ecount @>
+ ("Mismatch at depth " + depth.ToString() + " : " + expected.ToString() + " but got"
+ + (result |> Seq.toList).ToString())
+ Seq.zip result expected
+ |> Seq.iter
+ (fun (r : XElement, e : XElement) ->
+ test <@ r.Name = e.Name @>
+ let ra = r.Attributes()
+ let ea = e.Attributes()
+ Seq.zip ra ea
+ |> Seq.iter
+ (fun (a1 : XAttribute, a2 : XAttribute) ->
+ test <@ a1.Name = a2.Name @>
+ match a1.Name.ToString() with
+ | "bev"
+ | "visited"
+ | "visitedSequencePoints"
+ | "visitedBranchPoints"
+ | "visitedClasses"
+ | "visitedMethods"
+ | "sequenceCoverage"
+ | "branchCoverage"
+ | "uspid"
+ | "minCrapScore"
+ | "maxCrapScore"
+ | "crapScore"
+ | "hash" -> ()
+ | "fullPath" ->
+ test'
+ <@ a1.Value.Replace("\\", "/").Replace("altcover", "AltCover").
+ EndsWith(a2.Value.Replace("\\", "/").Replace("altcover", "AltCover")) @>
+ (a1.Name.ToString() + " : " + r.ToString() + " -> document")
+ | "vc" ->
+ let expected =
+ maybe zero "0" a2.Value
+ test' <@ expected = a1.Value @> (r.ToString() + " -> visitcount")
+ | _ ->
+ test' <@ a1.Value = a2.Value @>
+ (r.ToString() + " -> " + a1.Name.ToString()))
+ RecursiveValidateOpenCover (r.Elements()) (e.Elements()) (depth + 1) zero
+ expectSkipped)
+
+[]
+let Test1 () =
+ Assert.Pass()
\ No newline at end of file
diff --git a/AltCover.NetCoreApp/runtimeconfig.template.json b/Sample22/runtimeconfig.template.json
similarity index 100%
rename from AltCover.NetCoreApp/runtimeconfig.template.json
rename to Sample22/runtimeconfig.template.json
diff --git a/Sample23/Async97.cs b/Sample23/Async97.cs
new file mode 100644
index 000000000..43f5b99fe
--- /dev/null
+++ b/Sample23/Async97.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+
+namespace Sample23
+{
+ public class Async97
+ {
+ public async Task
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -31,6 +31,6 @@
-
+
\ No newline at end of file
diff --git a/Sample8/sample8.core.csproj b/Sample8/Sample8.csproj
similarity index 100%
rename from Sample8/sample8.core.csproj
rename to Sample8/Sample8.csproj
diff --git a/Sample9/sample9.csproj b/Sample9/sample9.csproj
index 1a08a46b6..2d2c7fadb 100644
--- a/Sample9/sample9.csproj
+++ b/Sample9/sample9.csproj
@@ -1,7 +1,7 @@
- net471
+ net472
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Tests.Visualizer/AltCover.Visualizer.Tests.fsproj b/Tests.Visualizer/AltCover.Visualizer.Tests.fsproj
new file mode 100644
index 000000000..8891f2bfb
--- /dev/null
+++ b/Tests.Visualizer/AltCover.Visualizer.Tests.fsproj
@@ -0,0 +1,72 @@
+
+
+
+ netcoreapp3.0;net472
+ false
+ false
+ AltCover.Tests.Visualizer
+ GUI
+ $(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
+ $(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
+
+
+
+ TRACE;DEBUG;CODE_ANALYSIS;$(GlobalDefineConstants)
+ --tailcalls+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
+
+
+ TRACE;$(GlobalDefineConstants)
+ --keyfile:$(ProjectDir)..\Build\Infrastructure.snk
+
+
+
+
+
+
+
+ ..\ThirdParty\Unquote.dll
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AssemblyInfo.fs
+
+
+ AssemblyVersion.fs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests.Visualizer/Program.fs b/Tests.Visualizer/Program.fs
index 9cde23a32..bdb6ef0c3 100644
--- a/Tests.Visualizer/Program.fs
+++ b/Tests.Visualizer/Program.fs
@@ -1,2 +1,34 @@
-namespace Dummy
-module Program = let [] main _ = 0
+namespace Tests
+
+#if NETCOREAPP3_0
+
+open Expecto
+
+module TestMain =
+ let regular = [
+ Tests.TestCommonTests.ExerciseItAll, "TestCommonTests.ExerciseItAll"
+ Tests.TestCommonTests.SelfTest, "TestCommonTests.SelfTest"
+ Tests.VisualizerTests.AugmentNullableDetectNulls, "VisualizerTests.AugmentNullableDetectNulls"
+ Tests.VisualizerTests.AugmentNonNullableDetectNoNulls, "VisualizerTests.AugmentNonNullableDetectNoNulls"
+ Tests.VisualizerTests.DefaultHelperPassesThrough, "VisualizerTests.DefaultHelperPassesThrough"
+ ]
+
+ let specials =
+ []
+
+ let consistencyCheck() =
+ ExpectoTestCommon.consistencyCheck regular []
+
+ []
+ let tests =
+ ExpectoTestCommon.makeTests "AltCover.Visualizer"
+ consistencyCheck regular specials
+ ignore
+
+module UnitTestStub =
+ []
+ let unitTestStub argv =
+ let writeResults = TestResults.writeNUnitSummary ("AltCover.Visualizer.TestResults.xml", "AltCover.Visualizer.Tests")
+ let config = defaultConfig.appendSummaryHandler writeResults
+ runTestsWithArgs config argv TestMain.tests
+#endif
\ No newline at end of file
diff --git a/Tests.Visualizer/GtkVisualizerTests.fs b/Tests.Visualizer/UICommonTests.fs
similarity index 54%
rename from Tests.Visualizer/GtkVisualizerTests.fs
rename to Tests.Visualizer/UICommonTests.fs
index 1d81b6627..5a00708d4 100644
--- a/Tests.Visualizer/GtkVisualizerTests.fs
+++ b/Tests.Visualizer/UICommonTests.fs
@@ -1,27 +1,24 @@
-namespace Tests.Visualizer
-
-open System
-open System.IO
-open System.Reflection
+namespace Tests
open AltCover
-open NUnit.Framework
-open Swensen.Unquote
-[]
-type AltCoverTests() =
- class
+module VisualizerTests =
// Augment.fs
[]
- member self.AugmentNullableDetectNulls() =
+ let AugmentNullableDetectNulls() =
let input = [ "string"; null; "another string" ]
let nulls = input |> List.map (fun x -> x.IsNotNull |> not)
test <@ nulls = [ false; true; false ] @>
[]
- member self.AugmentNonNullableDetectNoNulls() =
+ let AugmentNonNullableDetectNoNulls() =
let input = [ 1; 2 ;3 ]
test <@ input |> List.forall (fun x -> x.IsNotNull) @>
- end
\ No newline at end of file
+
+ // CoverageFile.fs
+
+ []
+ let DefaultHelperPassesThrough() =
+ test <@ Transformer.defaultHelper null null |> isNull @>
\ No newline at end of file
diff --git a/Tests.Visualizer/altcover.visualizer.tests.core.fsproj b/Tests.Visualizer/altcover.visualizer.tests.core.fsproj
deleted file mode 100644
index 9cb837fe5..000000000
--- a/Tests.Visualizer/altcover.visualizer.tests.core.fsproj
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
- net471;netcoreapp2.1
- x86
-
- false
- false
- AltCover.Tests.Visualizer
- $(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
- $(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
-
-
-
- --tailcalls+ --keyfile:$(SolutionDir)Build\Infrastructure.snk
-
-
- --keyfile:$(SolutionDir)Build\Infrastructure.snk
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
- ..\ThirdParty\Unquote.dll
-
-
-
-
-
-
- AssemblyInfo.fs
-
-
- AssemblyVersion.fs
-
-
-
-
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Tests/altcover.tests.core.fsproj b/Tests/AltCover.Tests.fsproj
similarity index 70%
rename from Tests/altcover.tests.core.fsproj
rename to Tests/AltCover.Tests.fsproj
index d20f99fb4..695cb427a 100644
--- a/Tests/altcover.tests.core.fsproj
+++ b/Tests/AltCover.Tests.fsproj
@@ -1,22 +1,23 @@
- netcoreapp3.0;net47
+ netcoreapp3.0;net472
false
AltCover.Tests
$(AssetTargetFallback);netcoreapp1.0;
false
- Exe
- Library
+ Exe
+ Library
+ MONO
- $(AssemblySearchPaths);{GAC}
+ $(AssemblySearchPaths);{GAC}
$(SolutionDir)_Binaries/$(AssemblyName)/$(Configuration)+$(Platform)/
$(SolutionDir)_Intermediate/$(AssemblyName)/$(Configuration)+$(Platform)/
- TRACE;NETCOREAPP2_0;NETCOREAPP2_1;
- TRACE
+ TRACE;NETCOREAPP2_0;NETCOREAPP2_1
+ TRACE;$(ExtraDefines)
--keyfile:$(ProjectDir)..\Build\Infrastructure.snk
@@ -28,6 +29,7 @@
+
@@ -69,56 +71,57 @@
-
-
+
+
-
-
+
+
..\ThirdParty\Unquote.dll
-
+
all
runtime; build; native; contentfiles; analyzers
-
-
-
-
+
+
+
+
-
-
+
+
..\ThirdParty\Mono.Options.dll
-
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
diff --git a/Tests/AltCoverFSharpTypes.n3.xml b/Tests/AltCoverFSharpTypes.n3.xml
index c0fe3db68..bf954caf6 100644
--- a/Tests/AltCoverFSharpTypes.n3.xml
+++ b/Tests/AltCoverFSharpTypes.n3.xml
@@ -1,9 +1,9 @@
-
+
-
+
./_Binaries/Sample4/Debug+AnyCPU/netcoreapp2.1/Sample4.dll
2018-06-13T15:08:24.8840000Z
Sample4
@@ -73,24 +73,24 @@
-
+
Tests.DU/MyUnion
-
-
+
+
100663319
Tests.DU/MyUnion Tests.DU/MyUnion::as_bar()
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/Tests/OpenCoverForPester.coverlet.xml b/Tests/OpenCoverForPester.coverlet.xml
index 75bf8f066..15893f7af 100644
--- a/Tests/OpenCoverForPester.coverlet.xml
+++ b/Tests/OpenCoverForPester.coverlet.xml
@@ -1,9 +1,9 @@
-
+
-
+
Sample18.dll
2020-03-28T12:20:44
Sample18
@@ -131,7 +131,7 @@
-
+
Tests.DU/MyUnion
@@ -145,37 +145,25 @@
-
-
+
+
100663322
Tests.DU/MyUnion Tests.DU/MyUnion::AsBar()
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/Tests/Program.fs b/Tests/Program.fs
index 447350683..7f065f025 100644
--- a/Tests/Program.fs
+++ b/Tests/Program.fs
@@ -1,17 +1,14 @@
-namespace AltCover.Expecto.Tests
+namespace Tests
#if NETCOREAPP3_0
open AltCover
open Expecto
-open Mono.Cecil
-open Mono.Cecil.Cil
-open Mono.Cecil.Rocks
-open Swensen.Unquote
-module TestMain =
- let sync = System.Object()
+module ExpectoMain =
let regular = [
+ Tests.TestCommonTests.ExerciseItAll, "TestCommonTests.ExerciseItAll"
+ Tests.TestCommonTests.SelfTest, "TestCommonTests.SelfTest"
Tests.AltCoverRunnerTests.MaxTimeFirst, "Runner.MaxTimeFirst"
Tests.AltCoverRunnerTests.MaxTimeLast, "Runner.MaxTimeLast"
Tests.AltCoverRunnerTests.MinTimeFirst, "Runner.MinTimeFirst"
@@ -98,6 +95,8 @@ module TestMain =
Tests.AltCoverRunnerTests.JunkPayloadShouldReportAsExpected, "Runner.JunkPayloadShouldReportAsExpected"
Tests.AltCoverRunnerTests.TrackingPayloadShouldReportAsExpected, "Runner.TrackingPayloadShouldReportAsExpected"
Tests.AltCoverRunnerTests.PointProcessShouldCaptureTimes, "Runner.PointProcessShouldCaptureTimes"
+ Tests.AltCoverRunnerTests.PostprocessShouldHandleNullCase, "Runner.PostprocessShouldHandleNullCase"
+ Tests.AltCoverRunnerTests.PostprocessShouldHandleEntryAndExitTimes, "RunnerTests.PostprocessShouldHandleEntryAndExitTimes"
Tests.AltCoverRunnerTests.PostprocessShouldRestoreKnownOpenCoverState, "Runner.PostprocessShouldRestoreKnownOpenCoverState"
Tests.AltCoverRunnerTests.PostprocessShouldRestoreKnownOpenCoverStateFromMono, "Runner.PostprocessShouldRestoreKnownOpenCoverStateFromMono"
Tests.AltCoverRunnerTests.PostprocessShouldRestoreDegenerateOpenCoverState, "Runner.PostprocessShouldRestoreDegenerateOpenCoverState"
@@ -166,6 +165,7 @@ module TestMain =
Tests.AltCoverTests.ValidateAutomaticExemption, "Tests.ValidateAutomaticExemption"
Tests.AltCoverTests.DetectLocalSource, "Tests.DetectLocalSource"
Tests.AltCoverTests.LocateMatchShouldChooseLongerWildCardPath, "Tests.LocateMatchShouldChooseLongerWildCardPath"
+ Tests.AltCoverTests.DebugBuildTernaryTestInContext, "Tests.DebugBuildTernaryTestInContext"
Tests.AltCoverTests.ReleaseBuildTernaryTest, "Tests.ReleaseBuildTernaryTest"
Tests.AltCoverTests.ReleaseBuildTernaryTestInContext, "Tests.ReleaseBuildTernaryTestInContext"
Tests.AltCoverTests.ReleaseBuildTernaryTestInContextWithCoalescence, "Tests.ReleaseBuildTernaryTestInContextWithCoalescence"
@@ -261,7 +261,7 @@ module TestMain =
Tests.AltCoverTests2.ShouldBeAbleToLocateAReference, "Tests2.ShouldBeAbleToLocateAReference"
Tests.AltCoverTests2.ShouldBeAbleToPrepareTheAssembly, "Tests2.ShouldBeAbleToPrepareTheAssembly"
Tests.AltCoverTests2.ShouldGetTrackingStyleIfSet, "Tests2.ShouldGetTrackingStyleIfSet"
- Tests.AltCoverTests2.ShouldSymbolWriterOnWindowsOnly, "Tests2.ShouldSymbolWriterOnWindowsOnly"
+ Tests.AltCoverTests2.ShouldSymbolWriterAsExpected, "Tests2.ShouldSymbolWriterAsExpected"
Tests.AltCoverTests2.ShouldGetNewFilePathFromPreparedAssembly, "Tests2.ShouldGetNewFilePathFromPreparedAssembly"
Tests.AltCoverTests2.ShouldWriteMonoAssemblyOK, "Tests2.ShouldWriteMonoAssemblyOK"
Tests.AltCoverTests2.ShouldGetVisitFromWrittenAssembly, "Tests2.ShouldGetVisitFromWrittenAssembly"
@@ -420,6 +420,7 @@ module TestMain =
Tests.AltCoverTests3.StoresAsExpected, "Tests3.StoresAsExpected"
Tests.AltCoverTests3.ImportModuleIsAsExpected, "Tests3.ImportModuleIsAsExpected"
Tests.AltCoverTests3.VersionIsAsExpected, "Tests3.VersionIsAsExpected"
+ Tests.AltCoverTests3.TargetsPathIsAsExpected, "Tests3.TargetsPathIsAsExpected"
Tests.AltCoverTests3.UsageIsAsExpected, "Tests3.UsageIsAsExpected"
Tests.AltCoverTests3.ErrorResponseIsAsExpected, "Tests3.ErrorResponseIsAsExpected"
Tests.AltCoverTests3.LoggingCanBeExercised, "Tests3.LoggingCanBeExercised"
@@ -431,13 +432,10 @@ module TestMain =
Tests.AltCoverTests3.EmptyPowerShellIsJustTheDefaults, "Tests3.EmptyPowerShellIsJustTheDefaults"
Tests.AltCoverTests3.EmptyVersionIsJustTheDefaults, "Tests3.EmptyVersionIsJustTheDefaults"
Tests.AltCoverTests3.EchoWorks, "Tests3.EchoWorks"
-#if NETCOREAPP2_0
Tests.AltCoverTests3.RunSettingsFailsIfCollectorNotFound, "Tests3.RunSettingsFailsIfCollectorNotFound"
Tests.AltCoverTests3.RunSettingsWorksIfOK, "Tests3.RunSettingsWorksIfOK"
Tests.AltCoverTests3.RunSettingsExtendsOK, "Tests3.RunSettingsExtendsOK"
Tests.AltCoverTests3.RunSettingsRecoversOK, "Tests3.RunSettingsRecoversOK"
-#else
-#endif
Tests.AltCoverXTests.CollectOptionsCanBeValidated, "XTests.CollectOptionsCanBeValidated"
Tests.AltCoverXTests.TypeSafeEmptyThresholdCanBeValidated, "XTests.TypeSafeEmptyThresholdCanBeValidated"
Tests.AltCoverXTests.TypeSafeCollectOptionsCanBeValidated, "XTests.TypeSafeCollectOptionsCanBeValidated"
@@ -457,6 +455,7 @@ module TestMain =
Tests.AltCoverXTests.TypeSafePrepareOptionsCanBeValidatedAndDetectInconsistency, "XTests.TypeSafePrepareOptionsCanBeValidatedAndDetectInconsistency"
Tests.AltCoverXTests.PrepareOptionsCanBeValidatedWithErrors, "XTests.PrepareOptionsCanBeValidatedWithErrors"
Tests.AltCoverXTests.NullListsAreEmpty, "XTests.NullListsAreEmpty"
+ Tests.AltCoverXTests.ValidateAssemblyOption, "XTests.ValidateAssemblyOption"
Tests.AltCoverXTests.ADotNetDryRunLooksAsExpected, "XTests.ADotNetDryRunLooksAsExpected"
Tests.AltCoverXTests.ADryRunLooksAsExpected, "XTests.ADryRunLooksAsExpected"
Tests.AltCoverXTests.AfterAssemblyCommitsThatAssembly, "XTests.AfterAssemblyCommitsThatAssembly"
@@ -471,55 +470,24 @@ module TestMain =
{ 0 .. 31 }
|> Seq.map (fun i ->
testCase (sprintf "Tests2.ShouldUpdateHandlerOK(%d)" i) <| (fun () ->
- lock sync (fun () ->
+ lock ExpectoTestCommon.sync (fun () ->
AltCover.Main.init()
Tests.AltCoverTests2.ShouldUpdateHandlerOK i)))
|> Seq.toList
let consistencyCheck() =
- let here = System.Reflection.Assembly.GetExecutingAssembly().Location
- let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(here)
-
- let testMethods = def.MainModule.GetTypes()
- |> Seq.collect (fun t -> t.Methods)
- |> Seq.filter (fun m -> m.CustomAttributes.IsNotNull)
- |> Seq.filter (fun m -> m.CustomAttributes |> Seq.exists (fun a -> a.AttributeType.Name = "TestAttribute"))
- |> Seq.map (fun m -> m.DeclaringType.FullName + "::" + m.Name)
-
- let lookup = def.MainModule.GetAllTypes()
- |> Seq.filter (fun t -> t.Methods |> Seq.exists(fun m -> m.Name = "Invoke"))
- |> Seq.map (fun t -> (t.FullName.Replace("/","+"), t.Methods |> Seq.find(fun m -> m.Name = "Invoke")))
- |> Map.ofSeq
-
- let calls = regular
- |> List.map (fst
- >> (fun f -> f.GetType().FullName.Replace("/","+"))
- >> (fun f -> Map.find f lookup)
- >> (fun f -> f.Body.Instructions |> Seq.find (fun i -> i.OpCode = OpCodes.Call))
- >> (fun i -> let m = (i.Operand :?> MethodDefinition)
- m.DeclaringType.FullName + "::" + m.Name))
- |> Set.ofList
-
- let omitted = testMethods
- |> Seq.filter (fun t -> (Set.contains t calls) |> not)
- |> Seq.toList
-
- // cover all but the special cases
- test <@ omitted = ["Tests.AltCoverTests2::ShouldUpdateHandlerOK"] @>
+ ExpectoTestCommon.consistencyCheck regular ["Tests.AltCoverTests2::ShouldUpdateHandlerOK"]
[]
let tests =
- testList "AltCoverTests"
- <| (((consistencyCheck, "ConsistencyCheck") :: regular
- |> List.map (fun (f,name) -> testCase name (fun () -> lock sync (fun () ->
- AltCover.Main.init()
- AltCover.Runner.init()
- f())))) @ specials)
+ ExpectoTestCommon.makeTests "AltCoverTests" consistencyCheck regular specials
+ (fun () -> AltCover.Main.init()
+ AltCover.Runner.init())
-module Program =
- []
- let main argv =
+module UnitTestStub =
+ []
+ let unitTestStub argv =
let writeResults = TestResults.writeNUnitSummary ("AltCover.TestResults.xml", "AltCover.Tests")
let config = defaultConfig.appendSummaryHandler writeResults
- runTestsWithArgs config argv TestMain.tests
+ runTestsWithArgs config argv ExpectoMain.tests
#endif
\ No newline at end of file
diff --git a/Tests/Runner.Tests.fs b/Tests/Runner.Tests.fs
index f0e960d14..8ef972322 100644
--- a/Tests/Runner.Tests.fs
+++ b/Tests/Runner.Tests.fs
@@ -3,7 +3,6 @@ namespace Tests
open System
open System.Collections.Generic
-open System.Diagnostics.CodeAnalysis
open System.IO
open System.IO.Compression
open System.Reflection
@@ -15,20 +14,8 @@ open System.Xml.Schema
open AltCover
open Microsoft.FSharp.Reflection
open Mono.Options
-open Swensen.Unquote
-type Assert = NUnit.Framework.Assert
-type Does = NUnit.Framework.Does
-type Is = NUnit.Framework.Is
-
-#if NETCOREAPP2_1
-[]
-type TestAttribute() = class
- inherit Attribute()
-end
-#else
-type TestAttribute = NUnit.Framework.TestAttribute
-#endif
+#nowarn "25" // partial pattern match
module AltCoverUsage =
let internal usageText =
@@ -247,12 +234,10 @@ module AltCoverRunnerTests =
|> Seq.map (fun x -> x.GetAttribute("visitcount")),
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
- if File.Exists reportFile then File.Delete reportFile
+ maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ maybeIOException (fun () -> Directory.Delete(unique))
[]
let FlushLeavesExpectedTracesWhenDiverted() =
@@ -297,12 +282,10 @@ module AltCoverRunnerTests =
|> Seq.map (fun x -> x.GetAttribute("visitcount")),
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
- if File.Exists reportFile then File.Delete reportFile
+ maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ maybeIOException (fun () -> Directory.Delete(unique))
// Runner.fs and CommandLine.fs
[]
@@ -343,7 +326,7 @@ module AltCoverRunnerTests =
files
|> Seq.filter (fun x -> x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
|> Seq.head
- EntryPoint.toConsole()
+ CommandLine.toConsole()
let saved = (Console.Out, Console.Error)
let e0 = Console.Out.Encoding
let e1 = Console.Error.Encoding
@@ -351,18 +334,19 @@ module AltCoverRunnerTests =
use stdout =
{ new StringWriter() with
member self.Encoding = e0 }
+ test <@ stdout.Encoding = e0 @>
use stderr =
{ new StringWriter() with
member self.Encoding = e1 }
+ test <@ stderr.Encoding = e1 @>
Console.SetOut stdout
Console.SetError stderr
let nonWindows = System.Environment.GetEnvironmentVariable("OS") <> "Windows_NT"
let exe, args =
- if nonWindows then ("mono", "\"" + program + "\"")
- else (program, String.Empty)
+ maybe nonWindows ("mono", "\"" + program + "\"") (program, String.Empty)
let r =
CommandLine.I.launch exe args
@@ -372,8 +356,8 @@ module AltCoverRunnerTests =
let result = stdout.ToString()
let quote =
- if System.Environment.GetEnvironmentVariable("OS") = "Windows_NT" then "\""
- else String.Empty
+ maybe (System.Environment.GetEnvironmentVariable("OS") = "Windows_NT")
+ "\"" String.Empty
let expected =
"Command line : '" + quote + exe + quote + " " + args + "\'"
@@ -490,7 +474,6 @@ module AltCoverRunnerTests =
let options = Runner.declareOptions()
let parse = CommandLine.parseCommandLine [| "/@thisIsNotAnOption" |] options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(x, Is.EqualTo "UsageError")
Assert.That(y, Is.SameAs options)
@@ -502,7 +485,6 @@ module AltCoverRunnerTests =
let input = [| "--"; "/@thisIsNotAnOption"; "this should be OK" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(x, Is.EquivalentTo(input |> Seq.skip 1))
Assert.That(y, Is.SameAs options)
@@ -514,10 +496,8 @@ module AltCoverRunnerTests =
let input = [| "--?" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) -> Assert.That(y, Is.SameAs options)
match CommandLine.processHelpOption parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(x, Is.EqualTo "HelpText")
Assert.That(y, Is.SameAs options)
@@ -526,7 +506,6 @@ module AltCoverRunnerTests =
Runner.executable := None
match CommandLine.parseCommandLine [| "/x"; "x" |] options
|> CommandLine.processHelpOption with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty))
@@ -542,12 +521,10 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(x, Is.EqualTo "UsageError")
Assert.That(y, Is.SameAs options)
match CommandLine.processHelpOption parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(x, Is.EqualTo "UsageError")
Assert.That(y, Is.SameAs options)
@@ -556,7 +533,6 @@ module AltCoverRunnerTests =
Runner.executable := None
match CommandLine.parseCommandLine [| "/x"; "x" |] options
|> CommandLine.processHelpOption with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty))
@@ -572,12 +548,10 @@ module AltCoverRunnerTests =
let input = [| "-x"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match !Runner.executable with
- | None -> Assert.Fail()
| Some x -> Assert.That(Path.GetFileName x, Is.EqualTo unique)
finally
Runner.executable := None)
@@ -599,7 +573,6 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -618,7 +591,6 @@ module AltCoverRunnerTests =
let input = [| "-x"; blank |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -635,12 +607,10 @@ module AltCoverRunnerTests =
let input = [| "-w"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.workingDirectory with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo unique)
finally
Runner.workingDirectory <- None
@@ -660,7 +630,6 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -678,7 +647,6 @@ module AltCoverRunnerTests =
let input = [| "-w"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -694,7 +662,6 @@ module AltCoverRunnerTests =
let input = [| "-w" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -711,12 +678,10 @@ module AltCoverRunnerTests =
let input = [| "-r"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.recordingDirectory with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo unique)
finally
Runner.recordingDirectory <- None
@@ -736,7 +701,6 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -754,7 +718,6 @@ module AltCoverRunnerTests =
let input = [| "-r"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -770,7 +733,6 @@ module AltCoverRunnerTests =
let input = [| "-r" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -786,7 +748,6 @@ module AltCoverRunnerTests =
let input = [| "--collect" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
@@ -803,7 +764,6 @@ module AltCoverRunnerTests =
let input = [| "--collect"; "--collect" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -817,22 +777,20 @@ module AltCoverRunnerTests =
lock LCov.path (fun () ->
try
LCov.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let unique = "some exe"
let input = [| "-l"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match !LCov.path with
- | None -> Assert.Fail()
| Some x -> Assert.That(Path.GetFileName x, Is.EqualTo unique)
Assert.That(Runner.I.summaries.Length, Is.EqualTo 2)
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
LCov.path := None)
[]
@@ -841,7 +799,7 @@ module AltCoverRunnerTests =
lock LCov.path (fun () ->
try
LCov.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let unique = Guid.NewGuid().ToString()
@@ -853,13 +811,12 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
Assert.That(CommandLine.error |> Seq.head, Is.EqualTo "--lcovReport : specify this only once")
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
LCov.path := None)
[]
@@ -868,18 +825,17 @@ module AltCoverRunnerTests =
lock LCov.path (fun () ->
try
LCov.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let blank = " "
let input = [| "-l"; blank |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
LCov.path := None)
[]
@@ -891,12 +847,10 @@ module AltCoverRunnerTests =
let input = [| "-t"; "57" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.threshold with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo {
Statements = 57uy
Branches = 0uy
@@ -917,12 +871,10 @@ module AltCoverRunnerTests =
let input = [| "-t"; "M57C42S16B7AM14AC101" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.threshold with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo {
Statements = 16uy
Branches = 7uy
@@ -943,12 +895,10 @@ module AltCoverRunnerTests =
let input = [| "-t"; "M100C255S100B100AM100AC255" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.threshold with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo {
Statements = 100uy
Branches = 100uy
@@ -969,12 +919,10 @@ module AltCoverRunnerTests =
let input = [| "-t"; "M0C0S0B0AM0AC0" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.threshold with
- | None -> Assert.Fail()
| Some x -> Assert.That(x, Is.EqualTo {
Statements = 0uy
Branches = 0uy
@@ -995,7 +943,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "23"; "/t"; "42" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1012,7 +959,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "-111" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1028,7 +974,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "S" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1044,7 +989,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "X666" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1060,7 +1004,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "S101" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1076,7 +1019,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "M101" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1092,7 +1034,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "B101" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1108,7 +1049,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; "C256" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1124,7 +1064,6 @@ module AltCoverRunnerTests =
let input = [| "-t"; " " |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1140,7 +1079,6 @@ module AltCoverRunnerTests =
let input = [| "-t" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1153,22 +1091,20 @@ module AltCoverRunnerTests =
lock Cobertura.path (fun () ->
try
Cobertura.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let unique = "some exe"
let input = [| "-c"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match !Cobertura.path with
- | None -> Assert.Fail()
| Some x -> Assert.That(Path.GetFileName x, Is.EqualTo unique)
Assert.That(Runner.I.summaries.Length, Is.EqualTo 2)
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
Cobertura.path := None)
[]
@@ -1177,7 +1113,7 @@ module AltCoverRunnerTests =
lock Cobertura.path (fun () ->
try
Cobertura.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let unique = Guid.NewGuid().ToString()
@@ -1189,13 +1125,12 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
Assert.That(CommandLine.error |> Seq.head, Is.EqualTo "--cobertura : specify this only once")
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
Cobertura.path := None)
[]
@@ -1204,18 +1139,17 @@ module AltCoverRunnerTests =
lock Cobertura.path (fun () ->
try
Cobertura.path := None
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
let options = Runner.declareOptions()
let blank = " "
let input = [| "-c"; blank |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
finally
- Runner.I.summaries <- [ Runner.I.standardSummary ]
+ Runner.I.initSummary()
Cobertura.path := None)
[]
@@ -1228,12 +1162,10 @@ module AltCoverRunnerTests =
let input = [| "-o"; unique |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.output with
- | None -> Assert.Fail()
| Some x -> Assert.That(Path.GetFileName x, Is.EqualTo unique)
finally
Runner.output <- None
@@ -1255,7 +1187,6 @@ module AltCoverRunnerTests =
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1273,7 +1204,6 @@ module AltCoverRunnerTests =
let input = [| "-o"; blank |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1289,7 +1219,6 @@ module AltCoverRunnerTests =
let input = [| "--dropReturnCode" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
@@ -1306,7 +1235,6 @@ module AltCoverRunnerTests =
let input = [| "--dropReturnCode"; "--dropReturnCode" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1363,18 +1291,11 @@ module AltCoverRunnerTests =
let input = [| "--teamcity" + a |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Left _ -> Assert.Fail()
| Right(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.Empty)
match Runner.summaryFormat with
- | x when v = x ->
-#if NETCOREAPP2_0
- ()
-#else
- Assert.Pass()
-#endif
- | _ -> Assert.Fail(sprintf "%A %A => %A" a v Runner.summaryFormat) ))
+ | x when v = x -> ()))
[]
let ParsingMultipleTCGivesFailure() =
@@ -1385,7 +1306,6 @@ module AltCoverRunnerTests =
let input = [| "--teamcity"; "--teamcity" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1401,7 +1321,6 @@ module AltCoverRunnerTests =
let input = [| "--teamcity:junk" |]
let parse = CommandLine.parseCommandLine input options
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError"))
@@ -1415,7 +1334,6 @@ module AltCoverRunnerTests =
let options = Runner.declareOptions()
let parse = Runner.J.requireExe(Right([], options))
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1435,7 +1353,6 @@ module AltCoverRunnerTests =
Assert.That(z, Is.SameAs options)
Assert.That(x, Is.EqualTo "xxx")
Assert.That(y, Is.EquivalentTo [ "b" ])
- | _ -> Assert.Fail()
finally
Runner.executable := None)
@@ -1450,7 +1367,6 @@ module AltCoverRunnerTests =
let parse = Runner.J.requireExe(Right([ "a"; "b" ], options))
match parse with
| Right([], z) -> Assert.That(z, Is.SameAs options)
- | _ -> Assert.Fail()
finally
Runner.collect := false
Runner.executable := None)
@@ -1465,7 +1381,6 @@ module AltCoverRunnerTests =
let options = Runner.declareOptions()
let parse = Runner.J.requireExe(Right([ "b" ], options))
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1485,7 +1400,6 @@ module AltCoverRunnerTests =
| Right _ ->
Assert.That(parse, Is.SameAs input)
Assert.That(Option.isSome Runner.workingDirectory)
- | _ -> Assert.Fail()
finally
Runner.workingDirectory <- None
@@ -1501,7 +1415,6 @@ module AltCoverRunnerTests =
| Right _ ->
Assert.That(parse, Is.SameAs input)
Assert.That(Runner.workingDirectory, Is.EqualTo(Some "ShouldAcceptWorker"))
- | _ -> Assert.Fail()
finally
Runner.workingDirectory <- None
@@ -1514,7 +1427,6 @@ module AltCoverRunnerTests =
let input = (Right([], options))
let parse = Runner.J.requireRecorder input
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1524,22 +1436,13 @@ module AltCoverRunnerTests =
[]
let ShouldRequireRecorderDll() =
Runner.init()
+ let path = Path.Combine(SolutionRoot.location, "_Mono/Sample1")
try
- let where = Assembly.GetExecutingAssembly().Location
- let path =
- Path.Combine(where.Substring(0, where.IndexOf("_Binaries")), "_Mono/Sample1")
-
- let path' =
- if Directory.Exists path then path
- else
- Path.Combine
- (where.Substring(0, where.IndexOf("_Binaries")), "../_Mono/Sample1")
- Runner.recordingDirectory <- Some path'
+ Runner.recordingDirectory <- Some path
let options = Runner.declareOptions()
let input = (Right([], options))
let parse = Runner.J.requireRecorder input
match parse with
- | Right _ -> Assert.Fail()
| Left(x, y) ->
Assert.That(y, Is.SameAs options)
Assert.That(x, Is.EqualTo "UsageError")
@@ -1568,7 +1471,6 @@ module AltCoverRunnerTests =
let parse = Runner.J.requireRecorder input
match parse with
| Right _ -> Assert.That(parse, Is.SameAs input)
- | _ -> Assert.Fail()
finally
Runner.recordingDirectory <- None
@@ -1589,8 +1491,7 @@ module AltCoverRunnerTests =
#if NETCOREAPP2_0
[ "dotnet"; path ]
#else
- if nonWindows then [ "mono"; path ]
- else [ path ]
+ maybe nonWindows [ "mono"; path ] [ path ]
#endif
let r = CommandLine.processTrailingArguments args <| DirectoryInfo(where)
@@ -1616,7 +1517,7 @@ module AltCoverRunnerTests =
files
|> Seq.filter (fun x -> x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
|> Seq.head
- EntryPoint.toConsole()
+ CommandLine.toConsole()
let saved = (Console.Out, Console.Error)
let e0 = Console.Out.Encoding
let e1 = Console.Error.Encoding
@@ -1624,10 +1525,12 @@ module AltCoverRunnerTests =
use stdout =
{ new StringWriter() with
member self.Encoding = e0 }
+ test <@ stdout.Encoding = e0 @>
use stderr =
{ new StringWriter() with
member self.Encoding = e1 }
+ test <@ stderr.Encoding = e1 @>
Console.SetOut stdout
Console.SetError stderr
@@ -1637,8 +1540,7 @@ module AltCoverRunnerTests =
let nonWindows = System.Environment.GetEnvironmentVariable("OS") <> "Windows_NT"
let args =
- if nonWindows then "mono" :: baseArgs
- else baseArgs
+ maybe nonWindows ("mono" :: baseArgs) baseArgs
let r = CommandLine.processTrailingArguments args <| DirectoryInfo(path)
Assert.That(r, Is.EqualTo 0)
@@ -1647,8 +1549,8 @@ module AltCoverRunnerTests =
let result = stdout.ToString()
let quote =
- if System.Environment.GetEnvironmentVariable("OS") = "Windows_NT" then "\""
- else String.Empty
+ maybe (System.Environment.GetEnvironmentVariable("OS") = "Windows_NT")
+ "\"" String.Empty
let expected =
"Command line : '" + quote + args.Head + quote + " "
@@ -1675,7 +1577,7 @@ module AltCoverRunnerTests =
Console.SetError stderr
let unique = Guid.NewGuid().ToString()
let main =
- typeof.Assembly.GetType("AltCover.EntryPoint")
+ typeof.Assembly.GetType("AltCover.EntryPoint")
.GetMethod("main", BindingFlags.NonPublic ||| BindingFlags.Static)
let returnCode = main.Invoke(null, [| [| "RuNN"; "-r"; unique |] |])
Assert.That(returnCode, Is.EqualTo 255)
@@ -1738,7 +1640,7 @@ module AltCoverRunnerTests =
files
|> Seq.filter (fun x -> x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
|> Seq.head
- EntryPoint.toConsole()
+ CommandLine.toConsole()
let saved = (Console.Out, Console.Error)
Runner.workingDirectory <- Some path
let e0 = Console.Out.Encoding
@@ -1747,10 +1649,12 @@ module AltCoverRunnerTests =
use stdout =
{ new StringWriter() with
member self.Encoding = e0 }
+ test <@ stdout.Encoding = e0 @>
use stderr =
{ new StringWriter() with
member self.Encoding = e1 }
+ test <@ stderr.Encoding = e1 @>
Console.SetOut stdout
Console.SetError stderr
@@ -1760,8 +1664,7 @@ module AltCoverRunnerTests =
let nonWindows = System.Environment.GetEnvironmentVariable("OS") <> "Windows_NT"
let args =
- if nonWindows then "mono" :: baseArgs
- else baseArgs
+ maybe nonWindows ("mono" :: baseArgs) baseArgs
let r = Runner.J.getPayload args
Assert.That(r, Is.EqualTo 0)
@@ -1770,8 +1673,8 @@ module AltCoverRunnerTests =
let result = stdout.ToString()
let quote =
- if System.Environment.GetEnvironmentVariable("OS") = "Windows_NT" then "\""
- else String.Empty
+ maybe (System.Environment.GetEnvironmentVariable("OS") = "Windows_NT")
+ "\"" String.Empty
let expected =
"Command line : '" + quote + args.Head + quote + " "
@@ -1845,13 +1748,11 @@ module AltCoverRunnerTests =
|> Seq.map (fun x -> x.GetAttribute("visitcount")),
Is.EquivalentTo [ "11"; "10"; "9"; "8"; "7"; "6"; "4"; "3"; "2"; "1" ])
finally
- if File.Exists reportFile then File.Delete reportFile
- if File.Exists junkfile then File.Delete junkfile
+ maybeDeleteFile reportFile
+ maybeDeleteFile junkfile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ maybeIOException (fun () -> Directory.Delete(unique))
[]
let ZipWriteLeavesExpectedTraces() =
@@ -1929,12 +1830,10 @@ module AltCoverRunnerTests =
finally
Assert.That(junkfile |> File.Exists |> not)
Assert.That(junkfile2 |> File.Exists |> not)
- if File.Exists reportFile then File.Delete reportFile
+ maybeDeleteFile reportFile
Console.SetOut saved
Directory.SetCurrentDirectory(here)
- try
- Directory.Delete(unique)
- with :? IOException -> ()
+ maybeIOException (fun () -> Directory.Delete(unique))
[]
let NullPayloadShouldReportNothing() =
@@ -1992,7 +1891,7 @@ module AltCoverRunnerTests =
Assert.That (counts.["c"].[3].Count, Is.EqualTo 1)
Assert.That (counts.["c"].[3].Tracks, Is.Empty)
- if File.Exists(unique + ".acv") then File.Delete(unique + ".acv")
+ maybeDeleteFile (unique + ".acv")
[]
let CollectShouldReportAsExpected() =
@@ -2002,11 +1901,9 @@ module AltCoverRunnerTests =
let counts = Dictionary>()
let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
let unique = Path.Combine(where, Guid.NewGuid().ToString())
-
- let r =
- Runner.J.getMonitor counts unique (fun l ->
+ let processing name (l : String list) =
use sink =
- new DeflateStream(File.OpenWrite(unique + ".0.acv"),
+ new DeflateStream(File.OpenWrite(name + ".0.acv"),
CompressionMode.Compress)
use formatter = new BinaryWriter(sink)
l
@@ -2015,7 +1912,15 @@ module AltCoverRunnerTests =
formatter.Write i
formatter.Write 0uy
x)
- |> List.length) [ "a"; "b"; String.Empty; "c" ]
+ |> List.length
+ let test = Path.Combine(where, Guid.NewGuid().ToString())
+ let dryrun = processing test [ "a"; "b"; String.Empty; "c" ]
+ Assert.That (dryrun, Is.EqualTo 4)
+ Assert.That(File.Exists(test + ".0.acv"))
+
+ let r =
+ Runner.J.getMonitor counts unique (processing unique)
+ [ "a"; "b"; String.Empty; "c" ]
Assert.That(r, Is.EqualTo 0)
Assert.That(File.Exists(unique + ".acv") |> not)
let doc = Runner.J.loadReport(unique + ".acv")
@@ -2111,7 +2016,8 @@ module AltCoverRunnerTests =
formatter.Write(Tag.Both |> byte)
formatter.Write(b.Time)
formatter.Write(b.Call)
- | _ -> tx |> (sprintf "%A") |> Assert.Fail)
+ //| _ -> tx |> (sprintf "%A") |> Assert.Fail
+ )
formatter.Write(Tag.Null |> byte)))
formatter.Write String.Empty
x)
@@ -2173,6 +2079,95 @@ module AltCoverRunnerTests =
Is.EqualTo
"""""")
+ []
+ let PostprocessShouldHandleNullCase() =
+ let minimal = """
+
+
+"""
+ let after = XmlDocument()
+ use reader= new StringReader(minimal)
+ after.Load(reader)
+ let empty = Dictionary>()
+ Runner.J.postProcess empty ReportFormat.OpenCover after
+ let summary = after.DocumentElement.SelectNodes("//Summary")
+ |> Seq.cast
+ |> Seq.toList
+
+ test <@ summary |> Seq.length = 1 @>
+ let attr = (summary |> Seq.head).GetAttribute("minCrapScore")
+ test <@ attr = "0" @>
+
+ []
+ let PostprocessShouldHandleEntryAndExitTimes() =
+ let minimal = """
+
+
+
+
+
+ Sample4.dll
+ 2020-11-07T13:49:28.5801620Z
+ Sample4
+
+
+
+
+
+
+
+
+"""
+ let after = XmlDocument()
+ use reader= new StringReader(minimal)
+ after.Load(reader)
+ let epoch = DateTime(2020, 11, 7)
+ let ticks = epoch.Ticks // = 637403040000000000
+ let v1 = PointVisit.Create()
+ v1.Track (Time (ticks + 10L))
+ v1.Track (Call 23)
+ v1.Track (Time (ticks + 20L))
+ let v2 = PointVisit.Create()
+ v2.Track (Time (ticks + 11L))
+ let v3 = PointVisit.Create()
+ v3.Track (Time (ticks + 30L))
+ let v4 = PointVisit.Create()
+ v4.Track (Call 42)
+
+ let entries = Dictionary()
+ entries.Add(1, v1)
+ entries.Add(2, v3)
+ let exits = Dictionary()
+ exits.Add(1, v2)
+ exits.Add(2, v4)
+
+ let counts = Dictionary>()
+ counts.Add(Track.Entry, entries)
+ counts.Add(Track.Exit, exits)
+ Runner.J.postProcess counts ReportFormat.OpenCover after
+ let processed = after.DocumentElement.OuterXml.Replace("\r\n","\n")
+
+ let expected = """
+
+
+
+
+Sample4.dll
+2020-11-07T13:49:28.5801620Z
+Sample4
+
+
+
+
+
+
+
+
+"""
+
+ Assert.That (processed, Is.EqualTo <| expected.Replace("\r",String.Empty).Replace("\n",String.Empty))
+ test <@ processed = expected.Replace("\r",String.Empty).Replace("\n",String.Empty) @>
+
[]
let PostprocessShouldRestoreKnownOpenCoverState() =
Runner.init()
@@ -2469,10 +2464,13 @@ module AltCoverRunnerTests =
let result = PostProcess.lookUpVisitsByToken key visits
match (result.Count, result.Tracks |> Seq.toList) with
| (0L, []) -> ()
- | _ -> Assert.Fail(sprintf "%A" result)
+// | _ -> Assert.Fail(sprintf "%A" result)
[]
let EmptyNCoverGeneratesExpectedSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument()
let builder = System.Text.StringBuilder()
@@ -2492,10 +2490,13 @@ module AltCoverRunnerTests =
let collected = task.Summary.Replace("\r",String.Empty).Replace("\n", "|")
Assert.That(collected, Is.EqualTo expected))
finally
- Output.info <- ignore
+ resetInfo()
[]
let EmptyNCoverGeneratesExpectedTCSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument()
let builder = System.Text.StringBuilder()
@@ -2517,10 +2518,13 @@ module AltCoverRunnerTests =
let collected = task.Summary.Replace("\r",String.Empty).Replace("\n", "|")
Assert.That(collected, Is.EqualTo expected, collected))
finally
- Output.info <- ignore
+ resetInfo()
[]
let EmptyNCoverGeneratesExpectedSummaries() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument()
let builder = System.Text.StringBuilder()
@@ -2542,10 +2546,13 @@ module AltCoverRunnerTests =
let collected = task.Summary.Replace("\r",String.Empty).Replace("\n", "|")
Assert.That(collected, Is.EqualTo expected, collected))
finally
- Output.info <- ignore
+ resetInfo()
[]
let NCoverShouldGeneratePlausibleSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let resource =
Assembly.GetExecutingAssembly().GetManifestResourceNames()
@@ -2577,10 +2584,13 @@ module AltCoverRunnerTests =
"##teamcity[buildStatisticValue key='CodeCoverageAbsCTotal' value='1']|##teamcity[buildStatisticValue key='CodeCoverageAbsCCovered' value='1']|##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='1']|##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='1']|##teamcity[buildStatisticValue key='CodeCoverageAbsSTotal' value='10']|##teamcity[buildStatisticValue key='CodeCoverageAbsSCovered' value='8']|")
))
finally
- Output.info <- ignore
+ resetInfo()
[]
let EmptyOpenCoverGeneratesExpectedSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument.Load(new System.IO.StringReader("""
@@ -2600,10 +2610,13 @@ module AltCoverRunnerTests =
+ "==== Alternative Results (includes all methods including those without corresponding source) ====|"
+ "Alternative Visited Classes 0 of 0 (n/a)|Alternative Visited Methods 0 of 0 (n/a)|")))
finally
- Output.info <- ignore
+ resetInfo()
[]
let EmptyOpenCoverGeneratesExpectedTCSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument.Load(new System.IO.StringReader("""
@@ -2627,10 +2640,13 @@ module AltCoverRunnerTests =
"##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='0']|" +
"##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']|")))
finally
- Output.info <- ignore
+ resetInfo()
[]
let EmptyOpenCoverGeneratesExpectedSummaries() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let report = XDocument.Load(new System.IO.StringReader("""
@@ -2658,10 +2674,13 @@ module AltCoverRunnerTests =
"##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='0']|" +
"##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']|")))
finally
- Output.info <- ignore
+ resetInfo()
[]
let OpenCoverShouldGeneratePlausibleSummary() =
+ let resetInfo () = Output.info <- ignore
+ resetInfo()
+ Output.info "info"
Runner.init()
let resource =
Assembly.GetExecutingAssembly().GetManifestResourceNames()
@@ -2722,7 +2741,7 @@ module AltCoverRunnerTests =
+ "##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3']|##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='2']|")
))
finally
- Output.info <- ignore)
+ resetInfo())
[]
let OpenCoverShouldGeneratePlausibleLcov() =
@@ -2882,11 +2901,7 @@ module AltCoverRunnerTests =
use stream =
Assembly.GetExecutingAssembly()
-#if LEGACY
- .GetManifestResourceStream("coverage-04.xsd")
-#else
- .GetManifestResourceStream("altcover.tests.core.coverage-04.xsd")
-#endif
+ .GetManifestResourceStream("AltCover.Tests.coverage-04.xsd")
use reader = new StreamReader(stream)
use xreader = XmlReader.Create(reader)
schemas.Add(String.Empty, xreader) |> ignore
diff --git a/Tests/Sample21.coverage.netcoreapp3.0.xml b/Tests/Sample21.coverage.netcoreapp3.0.xml
new file mode 100644
index 000000000..9df421e7a
--- /dev/null
+++ b/Tests/Sample21.coverage.netcoreapp3.0.xml
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+ C:\Users\steve\Documents\GitHub\altcover\Sample21\bin\Debug\netcoreapp3.0\__Saved\Sample21.dll
+ 2020-07-18T14:22:40.3674073Z
+ Sample21
+
+
+
+
+
+
+
+ AutoGeneratedProgram
+
+
+
+ 100663297
+ System.Void AutoGeneratedProgram::Main(System.String[])
+
+
+
+
+
+
+
+
+
+
+ 100663298
+ System.Void AutoGeneratedProgram::.ctor()
+
+
+
+
+
+
+
+
+ Sample21.Tests
+
+
+
+ 100663299
+ System.Void Sample21.Tests::Setup()
+
+
+
+
+
+
+
+
+
+
+ 100663300
+ System.Void Sample21.Tests::Test1()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100663301
+ System.Void Sample21.Tests::.ctor()
+
+
+
+
+
+
+
+
+ Sample21.Traditional
+
+
+
+ 100663303
+ System.String Sample21.Traditional::DoSomething()
+
+
+
+
+
+
+
+
+
+
+
+ 100663304
+ System.Void Sample21.Traditional::.ctor()
+
+
+
+
+
+
+
+
+ Sample21.IModern
+
+
+
+ 100663305
+ System.String Sample21.IModern::DoSomething()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sample21.Modern1
+
+
+
+ 100663306
+ System.Void Sample21.Modern1::.ctor()
+
+
+
+
+
+
+
+
+ Sample21.Modern2
+
+
+
+ 100663307
+ System.String Sample21.Modern2::DoSomething()
+
+
+
+
+
+
+
+
+
+
+
+ 100663308
+ System.Void Sample21.Modern2::.ctor()
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tests/TestCommon.fs b/Tests/TestCommon.fs
new file mode 100644
index 000000000..a652f29cd
--- /dev/null
+++ b/Tests/TestCommon.fs
@@ -0,0 +1,157 @@
+namespace Tests
+
+open System
+open System.IO
+open System.Reflection
+
+#if NETCOREAPP3_0
+open AltCover
+open Expecto
+open Mono.Cecil
+open Mono.Cecil.Cil
+open Mono.Cecil.Rocks
+#endif
+
+type Assert = NUnit.Framework.Assert
+type Does = NUnit.Framework.Does
+type Is = NUnit.Framework.Is
+
+#if NETCOREAPP3_0
+[]
+type TestAttribute() = class
+ inherit Attribute()
+end
+#else
+type TestAttribute = NUnit.Framework.TestAttribute
+#endif
+
+[]
+module TestCommon =
+ let SolutionDir() =
+ AltCover.SolutionRoot.location
+
+ let maybeIOException f =
+ try
+ f()
+ with
+ | :? System.UnauthorizedAccessException
+ | :? IOException -> ()
+
+ let maybeDeleteFile f =
+ if File.Exists f
+ then File.Delete f
+
+ let maybeReraise f g =
+ try
+ f()
+ with _ ->
+ g()
+ reraise()
+
+ let maybe a b c =
+ if a
+ then b
+ else c
+
+ let test x = Swensen.Unquote.Assertions.test x
+
+ let test' x message =
+ try
+ test x
+ with
+ | fail -> Swensen.Unquote.AssertionFailedException(message + Environment.NewLine + fail.Message, fail) |> raise
+
+module TestCommonTests =
+ []
+ let ExerciseItAll() =
+ let where = Assembly.GetExecutingAssembly().Location |> Path.GetDirectoryName
+ let unique = Path.Combine(Path.Combine(where, Guid.NewGuid().ToString()), "nonesuch.txt")
+ let realDir = Path.Combine(where, Guid.NewGuid().ToString())
+ realDir
+ |> Directory.CreateDirectory
+ |> ignore
+ let another = Path.Combine(realDir, "another.txt")
+ do use _dummy = File.Create another
+ ()
+ maybeDeleteFile another
+ maybeDeleteFile unique
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> File.Delete unique) ignore
+ )
+ maybeIOException (fun () ->
+ maybeReraise (fun () -> IOException() |> raise) ignore
+ )
+ maybeIOException (fun () -> System.UnauthorizedAccessException() |> raise )
+
+ test <@ (maybe true 1 2) = 1 @>
+ test <@ (maybe false 1 2) = 2 @>
+ test <@ SolutionDir() |> String.IsNullOrEmpty |> not @>
+ test <@ SolutionDir() = AltCover.SolutionRoot.location @>
+ test <@ where.StartsWith(AltCover.SolutionRoot.location, StringComparison.Ordinal) @>
+
+ []
+ let SelfTest() =
+ test <@ true @>
+#if NETCOREAPP3_0
+ Assert.Throws(
+#else
+#if (ValidateGendarmeEmulation || GUI)
+ Assert.Throws(
+#else
+ Assert.Throws(
+#endif
+#endif
+ fun () -> test <@ false @> ) |> ignore
+ Assert.Throws(
+ fun () -> test' <@ false @> "junk") |> ignore
+
+#if NETCOREAPP3_0
+module ExpectoTestCommon =
+ let sync = System.Object()
+
+ let consistencyCheck (regular:((unit -> unit)*string) list) expected =
+ let here = System.Reflection.Assembly.GetExecutingAssembly().Location
+ let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(here)
+
+ let testMethods = def.MainModule.GetTypes()
+ |> Seq.collect (fun t -> t.Methods)
+ |> Seq.filter (fun m -> m.CustomAttributes.IsNotNull)
+ |> Seq.filter (fun m -> m.CustomAttributes |> Seq.exists (fun a -> a.AttributeType.Name = "TestAttribute"))
+ |> Seq.map (fun m -> m.DeclaringType.FullName + "::" + m.Name)
+
+ let lookup = def.MainModule.GetAllTypes()
+ |> Seq.filter (fun t -> t.Methods |> Seq.exists(fun m -> m.Name = "Invoke"))
+ |> Seq.map (fun t -> (t.FullName.Replace("/","+"), t.Methods |> Seq.find(fun m -> m.Name = "Invoke")))
+ |> Map.ofSeq
+
+ let calls = regular
+ |> List.map (fst
+ >> (fun f -> f.GetType().FullName.Replace("/","+"))
+ >> (fun f -> Map.find f lookup)
+ >> (fun f -> f.Body.Instructions
+ // Where the test assembly is itself instrumented
+ // we have to allow for calls to AltCover.Recorder.Instance::Visit
+ // or the coverlet equivalent
+ // having been injected into the local function reference
+
+ |> Seq.find (fun i -> i.OpCode = OpCodes.Call
+ && i.Operand.GetType().Name.Equals("MethodDefinition", StringComparison.Ordinal))
+ )
+ >> (fun i -> let m = (i.Operand :?> MethodDefinition)
+ m.DeclaringType.FullName + "::" + m.Name))
+ |> Set.ofList
+
+ let omitted = testMethods
+ |> Seq.filter (fun t -> (Set.contains t calls) |> not)
+ |> Seq.toList
+
+ // cover all but the special cases
+ TestCommon.test <@ omitted = expected @>
+
+ let makeTests name (check:unit -> unit) (regular:((unit -> unit)*string) list) specials pretest =
+ testList name
+ <| (((check, "ConsistencyCheck") :: regular
+ |> List.map (fun (f,name) -> testCase name (fun () -> lock sync (fun () ->
+ pretest()
+ f())))) @ specials)
+#endif
\ No newline at end of file
diff --git a/Tests/Tests.fs b/Tests/Tests.fs
index 43a4ce871..3eb922143 100644
--- a/Tests/Tests.fs
+++ b/Tests/Tests.fs
@@ -13,7 +13,8 @@ open Mono.Cecil
open Mono.Cecil.Cil
open Mono.Cecil.Rocks
open N
-open Swensen.Unquote
+
+#nowarn "25"
[]
type ProxyObject() =
@@ -34,16 +35,12 @@ type ProxyObject() =
#endif
let t = assembly.ExportedTypes |> Seq.filter (fun t -> t.FullName = typeName)
this.Type <- Seq.tryHead t
- match this.Type with
- | None -> ()
- | Some t -> this.Object <- Activator.CreateInstance(t, args)
+ this.Object <- Activator.CreateInstance(this.Type |> Option.get, args)
member this.InvokeMethod(methodName : string, args : obj []) =
- match this.Type with
- | None -> null
- | Some t ->
- let methodinfo = t.GetMethod(methodName)
- methodinfo.Invoke(this.Object, args)
+ let t = this.Type |> Option.get
+ let methodinfo = t.GetMethod(methodName)
+ methodinfo.Invoke(this.Object, args)
[]
module Extensions =
@@ -55,8 +52,12 @@ module Extensions =
else i |> sbyte |> Microsoft.FSharp.Core.LanguagePrimitives.EnumOfValue
module AltCoverTests =
- let SolutionDir() =
- SolutionRoot.location
+
+#if NETCOREAPP2_0
+ let dir = Path.Combine(SolutionDir(), "_Binaries/AltCover.Tests/Debug+AnyCPU/netcoreapp3.0")
+#else
+ let dir = Path.Combine(SolutionDir(), "_Binaries/AltCover.Tests/Debug+AnyCPU/net472")
+#endif
let monoSample1path = Path.Combine(SolutionDir(), "_Mono/Sample1/Sample1.exe")
#if NETCOREAPP2_0
@@ -65,7 +66,7 @@ module AltCoverTests =
let sample8path = Path.Combine(SolutionDir(), "_Binaries/Sample8/Debug+AnyCPU/netcoreapp2.0/Sample8.dll")
#else
let sample1path = Path.Combine(SolutionDir(), "_Binaries/Sample1/Debug+AnyCPU/net20/Sample1.exe")
- let sample4path = Path.Combine(SolutionDir(), "_Binaries/Sample4/Debug+AnyCPU/net47/Sample4.dll")
+ let sample4path = Path.Combine(SolutionDir(), "_Binaries/Sample4/Debug+AnyCPU/net472/Sample4.dll")
let sample8path = Path.Combine(SolutionDir(), "_Binaries/Sample8/Debug+AnyCPU/net20/Sample8.exe")
#endif
let recorderSnk = typeof.Assembly.GetManifestResourceNames()
@@ -77,18 +78,6 @@ module AltCoverTests =
let private FF(a,b,c) = { Scope = a; Regex = b; Sense = c }
- // Hack for running while instrumented
- let Hack() =
- let where = Assembly.GetExecutingAssembly().Location
-
- let dir =
- where
- |> Path.GetDirectoryName
- |> Path.GetFileName
- match dir.IndexOf "__" with
- | 0 -> "/.."
- | _ -> String.Empty
-
// Augment.fs
[]
let ZeroIsNotVisited() =
@@ -109,123 +98,120 @@ module AltCoverTests =
// ProgramDatabase.fs
[]
let ShouldGetPdbFromImage() =
- let where = Assembly.GetExecutingAssembly().Location
- let pdb = Path.ChangeExtension(where, ".pdb")
- if File.Exists(pdb) then
- // Hack for running while instrumented
- let files =
- Directory.GetFiles(Path.GetDirectoryName(where) + Hack())
- |> Seq.filter
- (fun x ->
- x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
- || x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter (fun f -> f |> Path.GetFileNameWithoutExtension <> "testhost")
- |> Seq.filter (fun f -> f |> Path.GetFileName <> "AltCover.Tests.exe")
- |> Seq.filter (fun f -> f |> Path.GetFileName <> "CompilerAttributes.dll")
- |> Seq.map (fun x -> (x, Mono.Cecil.AssemblyDefinition.ReadAssembly x))
- |> Seq.filter (fun x ->
- (fst x) + ".mdb"
- |> File.Exists
- |> not)
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("altcode.", StringComparison.OrdinalIgnoreCase))
+ let files =
+ Directory.GetFiles(dir)
+ |> Seq.filter
+ (fun x ->
+ x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
+ || x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter (fun f -> f |> Path.GetFileNameWithoutExtension <> "testhost")
+ |> Seq.filter (fun f -> f |> Path.GetFileName <> "AltCover.Tests.exe")
+ |> Seq.filter (fun f -> f |> Path.GetFileName <> "CompilerAttributes.dll")
+ |> Seq.map (fun x -> (x, Mono.Cecil.AssemblyDefinition.ReadAssembly x))
+ |> Seq.filter (fun x ->
+ (fst x) + ".mdb"
+ |> File.Exists
+ |> not)
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("altcode.", StringComparison.OrdinalIgnoreCase))
#if NETCOREAPP2_0
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Expecto", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Mono.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("BlackFox.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Microsoft.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Manatee.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Newtonsoft.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("NuGet.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("nunit", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x)
- .FullName.StartsWith("FSharp.", StringComparison.OrdinalIgnoreCase))
- // for coverlet
- |> Seq.filter
- (fun x ->
- not
- <| (snd x)
- .FullName.StartsWith("coverlet", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x)
- .FullName.StartsWith("AltCover,", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("System.", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("Unquote", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x).FullName.StartsWith("xunit", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| (snd x)
- .FullName.StartsWith("AltCover.Recorder",
- StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Expecto", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("ICSharp", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Mono.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("BlackFox.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Microsoft.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Manatee.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Newtonsoft.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("NuGet.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("nunit", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x)
+ .FullName.StartsWith("FSharp.", StringComparison.OrdinalIgnoreCase))
+ // for coverlet
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x)
+ .FullName.StartsWith("coverlet", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x)
+ .FullName.StartsWith("AltCover,", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("System.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("Unquote", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x).FullName.StartsWith("xunit", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| (snd x)
+ .FullName.StartsWith("AltCover.Recorder",
+ StringComparison.OrdinalIgnoreCase))
#else
- |> Seq.filter (fun x -> (snd x).FullName.EndsWith("PublicKeyToken=c02b1a9f5b7cade8", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter (fun x -> (snd x).FullName.EndsWith("PublicKeyToken=c02b1a9f5b7cade8", StringComparison.OrdinalIgnoreCase))
#endif
- |> Seq.toList
- test <@ files <> [] @>
- files
- |> Seq.iter
- (fun x ->
- let pdb = AltCover.ProgramDatabase.getPdbFromImage(snd x)
- match pdb with
- | None -> Assert.Fail("No .pdb for " + (fst x))
- | Some name ->
- let probe = Path.ChangeExtension((fst x), ".pdb")
- let file = FileInfo(probe)
- let filename = file.Name.Replace("\\", "/")
- Assert.That
- ("/" + name.Replace("\\", "/"), Does.EndWith("/" + filename),
- (fst x) + " -> " + name))
-#if MONO
-// Mono doesn't embed
-#else
+ |> Seq.toList
+ test <@ files <> [] @>
+ files
+ |> Seq.iter
+ (fun x ->
+ let pdb = AltCover.ProgramDatabase.getPdbFromImage(snd x)
+ match pdb with
+ | Some name ->
+ let probe = Path.ChangeExtension((fst x), ".pdb")
+ let file = FileInfo(probe)
+ let filename = file.Name.Replace("\\", "/")
+ Assert.That
+ ("/" + name.Replace("\\", "/"), Does.EndWith("/" + filename),
+ (fst x) + " -> " + name))
+
+#if !MONO // Mono doesn't embed
[]
let ShouldGetEmbeddedPdbFromImage() =
let target = sample8path
let image = Mono.Cecil.AssemblyDefinition.ReadAssembly target
let pdb = AltCover.ProgramDatabase.getPdbFromImage image
match pdb with
- | None -> Assert.Fail("No .pdb for " + target)
| Some name ->
Assert.That
(name, Is.EqualTo "Sample8.pdb",
@@ -234,8 +220,6 @@ module AltCoverTests =
[]
let ShouldGetNoMdbFromMonoImage() =
- // Hack for running while instrumented
- let where = Assembly.GetExecutingAssembly().Location
let path = Path.GetDirectoryName monoSample1path
let files =
Directory.GetFiles(path)
@@ -252,15 +236,11 @@ module AltCoverTests =
let probe = (fst x) + ".mdb"
let pdb = AltCover.ProgramDatabase.getPdbFromImage(snd x)
match pdb with
- | None -> Assert.That(File.Exists probe, probe + " not found")
- | Some name -> Assert.Fail("Suddenly, an .mdb for " + (fst x)))
+ | None -> Assert.That(File.Exists probe, probe + " not found"))
[]
let ShouldGetPdbWithFallback() =
- // Hack for running while instrumented
- let where = Assembly.GetExecutingAssembly().Location
- let files = Directory.GetFiles(Path.GetDirectoryName(where) + Hack())
- files
+ Directory.GetFiles(dir)
|> Seq.filter
(fun x ->
x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
@@ -290,18 +270,9 @@ module AltCoverTests =
[]
let ShouldGetForeignPdbWithFallback() =
- // Hack for running while instrumented
- let where = Assembly.GetExecutingAssembly().Location
- let path = Path.Combine(where.Substring(0, where.IndexOf("_Binaries")), "packages")
-#if NETCOREAPP2_0
- let path' =
- if Directory.Exists path then path
- else Path.Combine(where.Substring(0, where.IndexOf("_Binaries")), "../packages")
-#else
- let path' = path
-#endif
+ let path = Path.Combine(SolutionDir(), "packages")
// Looking for the Mono.Options symbols
- let files = Directory.GetFiles(path', "*.pdb", SearchOption.AllDirectories)
+ let files = Directory.GetFiles(path, "*.pdb", SearchOption.AllDirectories)
files
|> Seq.filter (fun p -> Path.ChangeExtension(p, ".dll") |> File.Exists)
|> Seq.iter (fun p ->
@@ -311,26 +282,17 @@ module AltCoverTests =
let pdb = AltCover.ProgramDatabase.getPdbWithFallback(def)
let normalized = Path.Combine(Path.GetDirectoryName p, Path.GetFileName p)
match pdb with
- | None -> Assert.Fail("Not found " + p)
| Some name -> Assert.That(name, Is.EqualTo normalized)
with :? BadImageFormatException -> ())
[]
let ShouldGetForeignPdbWithFallbackWhenNotColocated() =
try
- // Hack for running while instrumented
let where = Assembly.GetExecutingAssembly().Location
let path =
- Path.Combine(where.Substring(0, where.IndexOf("_Binaries")), "packages")
-#if NETCOREAPP2_0
- let path' =
- if Directory.Exists path then path
- else Path.Combine(where.Substring(0, where.IndexOf("_Binaries")), "../packages")
-#else
- let path' = path
-#endif
+ Path.Combine(SolutionDir(), "packages")
// Looking for the Mono.Options symbols
- let files = Directory.GetFiles(path', "*.pdb", SearchOption.AllDirectories)
+ let files = Directory.GetFiles(path, "*.pdb", SearchOption.AllDirectories)
files
|> Seq.filter (fun p -> Path.ChangeExtension(p, ".dll") |> File.Exists)
|> Seq.iter (fun p ->
@@ -349,7 +311,6 @@ module AltCoverTests =
let pdb = AltCover.ProgramDatabase.getPdbWithFallback(def)
let normalized = Path.Combine(Path.GetDirectoryName p, Path.GetFileName p)
match pdb with
- | None -> Assert.Fail("Not found " + p)
| Some name ->
Assert.That(name, Is.EqualTo normalized)
AltCover.ProgramDatabase.readSymbols def
@@ -360,8 +321,6 @@ module AltCoverTests =
[]
let ShouldGetMdbWithFallback() =
- // Hack for running while instrumented
- let where = Assembly.GetExecutingAssembly().Location
let path = Path.GetDirectoryName monoSample1path
let files = Directory.GetFiles(path)
files
@@ -374,7 +333,7 @@ module AltCoverTests =
let def = Mono.Cecil.AssemblyDefinition.ReadAssembly x
let mdb = AltCover.ProgramDatabase.getPdbWithFallback(def)
match mdb with
- | None -> Assert.That(File.Exists(x + ".mdb"), Is.Not.True, "No .mdb for " + x)
+// | None -> Assert.That(File.Exists(x + ".mdb"), Is.Not.True, "No .mdb for " + x)
| Some name ->
let probe = x + ".mdb"
let file = FileInfo(probe)
@@ -385,46 +344,36 @@ module AltCoverTests =
[]
let ShouldGetSymbolsFromPdb() =
- let where = Assembly.GetExecutingAssembly().Location
- let pdb = Path.ChangeExtension(where, ".pdb")
- if File.Exists(pdb) then
- // Hack for running while instrumented
- let files =
- Directory.GetFiles(Path.GetDirectoryName(where) + Hack())
- files
- |> Seq.filter
- (fun x ->
- x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
- || x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter (fun f -> f |> Path.GetFileNameWithoutExtension <> "testhost")
- |> Seq.filter (fun f -> f |> Path.GetFileName <> "AltCover.Tests.exe")
- |> Seq.map Mono.Cecil.AssemblyDefinition.ReadAssembly
- |> Seq.filter
- (fun x ->
- not
- <| x.FullName.StartsWith("altcode.", StringComparison.OrdinalIgnoreCase))
-#if COVERLET
- |> Seq.filter
- (fun x ->
- not <| x.FullName.StartsWith("AltCover,", StringComparison.OrdinalIgnoreCase))
- |> Seq.filter
- (fun x ->
- not
- <| x.FullName.StartsWith
- ("AltCover.Recorder", StringComparison.OrdinalIgnoreCase))
-#endif
- |> Seq.filter
- (fun x ->
- x.FullName.EndsWith
- ("PublicKeyToken=c02b1a9f5b7cade8", StringComparison.OrdinalIgnoreCase))
- |> Seq.iter (fun def ->
- AltCover.ProgramDatabase.readSymbols def
- Assert.That(def.MainModule.HasSymbols, def.MainModule.FileName))
+ Directory.GetFiles(dir)
+ |> Seq.filter
+ (fun x ->
+ x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
+ || x.EndsWith(".exe", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter (fun f -> f |> Path.GetFileNameWithoutExtension <> "testhost")
+ |> Seq.filter (fun f -> f |> Path.GetFileName <> "AltCover.Tests.exe")
+ |> Seq.map Mono.Cecil.AssemblyDefinition.ReadAssembly
+ |> Seq.filter
+ (fun x ->
+ not
+ <| x.FullName.StartsWith("altcode.", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not <| x.FullName.StartsWith("AltCover,", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ not
+ <| x.FullName.StartsWith
+ ("AltCover.Recorder", StringComparison.OrdinalIgnoreCase))
+ |> Seq.filter
+ (fun x ->
+ x.FullName.EndsWith
+ ("PublicKeyToken=c02b1a9f5b7cade8", StringComparison.OrdinalIgnoreCase))
+ |> Seq.iter (fun def ->
+ AltCover.ProgramDatabase.readSymbols def
+ Assert.That(def.MainModule.HasSymbols, def.MainModule.FileName))
[]
let ShouldGetSymbolsFromEmbeddedPdb() =
- let where = Assembly.GetExecutingAssembly().Location
- let here = where |> Path.GetDirectoryName
let target = sample8path
let image = Mono.Cecil.AssemblyDefinition.ReadAssembly target
AltCover.ProgramDatabase.readSymbols image
@@ -432,10 +381,7 @@ module AltCoverTests =
[]
let ShouldNotGetSymbolsWhenNoPdb() =
- // Hack for running while instrumented
- let where = Assembly.GetExecutingAssembly().Location
- let files = Directory.GetFiles(Path.GetDirectoryName(where) + Hack())
- files
+ Directory.GetFiles(dir)
|> Seq.filter
(fun x ->
x.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)
@@ -669,8 +615,7 @@ module AltCoverTests =
[]
let Sample3Class1IsCSharpAutoproperty() =
let sample3 =
- Path.Combine
- (Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Sample3.dll")
+ Path.Combine(dir, "Sample3.dll")
let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(sample3)
def.MainModule.Types
|> Seq.filter (fun t -> t.Name = "Class1")
@@ -682,7 +627,7 @@ module AltCoverTests =
let Sample3Class2IsNotCSharpAutoproperty() =
let sample3 =
Path.Combine
- (Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Sample3.dll")
+ (dir, "Sample3.dll")
let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(sample3)
def.MainModule.Types
|> Seq.filter (fun t -> t.Name = "Class2")
@@ -716,8 +661,8 @@ module AltCoverTests =
let indirect3 =
indirect2
|> Seq.filter (fun t -> t.HasNestedTypes)
- |> Seq.collect (fun t -> t.NestedTypes)
- |> Seq.map (fun t -> t.FullName)
+ // |> Seq.collect (fun t -> t.NestedTypes)
+ // |> Seq.map (fun t -> t.FullName)
|> Seq.toList
Assert.That
@@ -823,9 +768,8 @@ module AltCoverTests =
let ValidateAutomaticExemption() =
try
CoverageParameters.showGenerated := true
- let where = Assembly.GetExecutingAssembly().Location
let path =
- Path.Combine(Path.GetDirectoryName(where) + Hack(), "Sample4.dll")
+ Path.Combine(dir, "Sample4.dll")
use def = Mono.Cecil.AssemblyDefinition.ReadAssembly path
let items =
def.MainModule.GetAllTypes()
@@ -849,7 +793,7 @@ module AltCoverTests =
let toolPackages =
let xml =
- Path.Combine(SolutionRoot.location, "./Build/dotnet-cli.csproj")
+ Path.Combine(SolutionDir(), "./Build/NuGet.csproj")
|> Path.GetFullPath
|> XDocument.Load
xml.Descendants(XName.Get("PackageReference"))
@@ -860,7 +804,7 @@ module AltCoverTests =
let libPackages =
let xml =
- Path.Combine(SolutionRoot.location, "./MCS/packages.config")
+ Path.Combine(SolutionDir(), "./MCS/packages.config")
|> Path.GetFullPath
|> XDocument.Load
xml.Descendants(XName.Get("package"))
@@ -871,11 +815,11 @@ module AltCoverTests =
CoverageParameters.local := false
CoverageParameters.nameFilters.Clear()
- let fscore = Path.Combine(SolutionRoot.location, "packages/FSharp.Core.4.5.2/lib/net45") // stable retro version
- let mono = Path.Combine(SolutionRoot.location, "packages/Mono.Cecil." +
+ let fscore = Path.Combine(SolutionDir(), "packages/FSharp.Core.4.5.2/lib/net45") // stable retro version
+ let mono = Path.Combine(SolutionDir(), "packages/Mono.Cecil." +
(libPackages.Item "mono.cecil") +
"/lib/net40")
- let nuget = Path.Combine(SolutionRoot.location, "packages/nuget.commandline/" +
+ let nuget = Path.Combine(SolutionDir(), "packages/nuget.commandline/" +
(toolPackages.Item "nuget.commandline") +
"/tools")
let exe = Path.Combine(nuget, "NuGet.exe")
@@ -933,6 +877,46 @@ module AltCoverTests =
let find = Visitor.I.findClosestMatch file dict
Assert.That(find, Is.EqualTo (Some (pp1, String.Empty)))
+ []
+ let DebugBuildTernaryTestInContext() =
+ let sample23 =
+ Path.Combine(dir, "Sample23.dll")
+ let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(sample23)
+ let symbols23 = Path.ChangeExtension(sample23, ".pdb")
+
+ let r = Mono.Cecil.Pdb.PdbReaderProvider()
+ use rr = r.GetSymbolReader(def.MainModule, symbols23)
+ def.MainModule.ReadSymbols(rr)
+
+ let method =
+ (def.MainModule.GetAllTypes()
+ |> Seq.filter (fun t -> t.Name = "Strings")
+ |> Seq.head).Methods
+ |> Seq.filter (fun m -> m.Name = "BRB")
+ |> Seq.head
+ Visitor.visit [] [] // cheat reset
+ try
+ CoverageParameters.theReportFormat <- Some ReportFormat.OpenCover
+ CoverageParameters.nameFilters.Clear()
+ let deeper =
+ Visitor.I.deeper <| Node.Method(method, Inspections.Instrument, None, Exemption.None) |> Seq.toList
+ Assert.That(deeper.Length, Is.EqualTo 3)
+ deeper
+ |> List.skip 1
+ |> List.iteri (fun i node ->
+ match node with
+ | (BranchPoint b) -> Assert.That(b.Uid, Is.EqualTo i, "branch point number"))
+ deeper
+ |> List.take 1
+ |> List.iteri (fun i node ->
+ match node with
+ | (MethodPoint(_, _, n, b, Exemption.None)) ->
+ Assert.That(n, Is.EqualTo i, "point number")
+ Assert.That(b, Is.True, "flag " + i.ToString()))
+ finally
+ CoverageParameters.nameFilters.Clear()
+ CoverageParameters.theReportFormat <- None
+
[]
let ReleaseBuildTernaryTest() =
let nop = Instruction.Create(OpCodes.Nop)
@@ -941,18 +925,18 @@ module AltCoverTests =
// transparent
Assert.That(Visitor.I.fakeSequencePoint Genuine seq nop, Is.SameAs seq)
- Assert.That(Visitor.I.fakeSequencePoint FakeAfterReturn seq nop, Is.SameAs seq)
+ Assert.That(Visitor.I.fakeSequencePoint FakeAtReturn seq nop, Is.SameAs seq)
Assert.That(Visitor.I.fakeSequencePoint Genuine null null, Is.Null)
- Assert.That(Visitor.I.fakeSequencePoint FakeAfterReturn null null, Is.Null)
+ Assert.That(Visitor.I.fakeSequencePoint FakeAtReturn null null, Is.Null)
Assert.That(Visitor.I.fakeSequencePoint Genuine null nop, Is.Null)
- Assert.That(Visitor.I.fakeSequencePoint FakeAfterReturn null nop, Is.Null)
+ Assert.That(Visitor.I.fakeSequencePoint FakeAtReturn null nop, Is.Null)
Assert.That(Visitor.I.fakeSequencePoint Genuine null ret, Is.Null)
// One fake-out
- Assert.That(Visitor.I.fakeSequencePoint FakeAfterReturn null ret, Is.Not.Null)
+ Assert.That(Visitor.I.fakeSequencePoint FakeAtReturn null ret, Is.Not.Null)
[]
let ReleaseBuildTernaryTestInContext() =
@@ -990,16 +974,14 @@ module AltCoverTests =
|> List.skip 1
|> List.iteri (fun i node ->
match node with
- | (BranchPoint b) -> Assert.That(b.Uid, Is.EqualTo i, "branch point number")
- | _ -> Assert.Fail("branch point expected"))
+ | (BranchPoint b) -> Assert.That(b.Uid, Is.EqualTo i, "branch point number"))
deeper
|> List.take 1
|> List.iteri (fun i node ->
match node with
| (MethodPoint(_, _, n, b, Exemption.None)) ->
Assert.That(n, Is.EqualTo i, "point number")
- Assert.That(b, Is.True, "flag " + i.ToString())
- | _ -> Assert.Fail("sequence point expected"))
+ Assert.That(b, Is.True, "flag " + i.ToString()))
finally
CoverageParameters.nameFilters.Clear()
CoverageParameters.theReportFormat <- None
@@ -1041,16 +1023,14 @@ module AltCoverTests =
|> List.skip 1
|> List.iteri (fun i node ->
match node with
- | (BranchPoint b) -> Assert.That(b.Uid, Is.EqualTo i, "branch point number")
- | _ -> Assert.Fail("branch point expected"))
+ | (BranchPoint b) -> Assert.That(b.Uid, Is.EqualTo i, "branch point number"))
deeper
|> List.take 1
|> List.iteri (fun i node ->
match node with
| (MethodPoint(_, _, n, b, Exemption.Automatic)) ->
Assert.That(n, Is.EqualTo i, "point number")
- Assert.That(b, Is.True, "flag " + i.ToString())
- | _ -> Assert.Fail("sequence point expected"))
+ Assert.That(b, Is.True, "flag " + i.ToString()))
finally
CoverageParameters.coalesceBranches := false
CoverageParameters.nameFilters.Clear()
@@ -1060,7 +1040,7 @@ module AltCoverTests =
let CSharpNestedMethods() =
let sample3 =
Path.Combine
- (Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Sample5.dll")
+ (dir, "Sample5.dll")
let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(sample3)
let methods =
@@ -1185,7 +1165,7 @@ module AltCoverTests =
let FSharpNestedMethods() =
let sample3 =
Path.Combine
- (Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Sample6.dll")
+ (dir, "Sample6.dll")
let def = Mono.Cecil.AssemblyDefinition.ReadAssembly(sample3)
let methods =
@@ -1215,9 +1195,7 @@ module AltCoverTests =
Some "FI@11::Specialize" //System.Int32 Sample6.Module/FI@10T::Invoke(Microsoft.FSharp.Collections.FSharpList`1)
Some "Module::F1" //System.Void Sample6.Module/F1@18::.ctor()
Some "Module::F1" //System.Int32 Sample6.Module/F1@18::Invoke(System.Object)
-#if !NETCOREAPP3_0
-//LEGACY
-// F# 4.5.1
+// F# version dependent below
Some "fetchUrlAsync@25-4::Invoke" //"System.Void Sample6.Module/fetchUrlAsync@27-5::.ctor(System.String,Microsoft.FSharp.Control.FSharpAsyncBuilder)"
Some "fetchUrlAsync@25-4::Invoke" //"Microsoft.FSharp.Control.FSharpAsync`1 Sample6.Module/fetchUrlAsync@27-5::Invoke(System.IO.StreamReader)"
Some "fetchUrlAsync@23-3::Invoke" //"System.Void Sample6.Module/fetchUrlAsync@26-4::.ctor(System.String,Microsoft.FSharp.Control.FSharpAsyncBuilder)"
@@ -1232,21 +1210,7 @@ module AltCoverTests =
Some "fetchUrlAsync@21::Invoke" //"Microsoft.FSharp.Control.FSharpAsync`1 Sample6.Module/fetchUrlAsync@23-1::Invoke(Microsoft.FSharp.Core.Unit)"
Some "Module::F2" //"System.Void Sample6.Module/fetchUrlAsync@22::.ctor()"
Some "Module::F2" //"Microsoft.FSharp.Control.FSharpAsync`1 Sample6.Module/fetchUrlAsync@22::Invoke(System.String)"
-#else
-// F# > 4.5.1
- Some "fetchUrlAsync@25-4::Invoke" //System.Void Sample6.Module/fetchUrlAsync@26-5::.ctor(System.String,Microsoft.FSharp.Control.FSharpAsyncBuilder)
- Some "fetchUrlAsync@25-4::Invoke" //Microsoft.FSharp.Control.FSharpAsync`1