Merge pull request #526 from Nihlus/rewriter-cecil-0.10

Update Generator.Rewriter to Cecil 0.10
This commit is contained in:
varon 2017-05-30 16:29:04 +02:00 committed by GitHub
commit c05ac4f7a0
5 changed files with 1456 additions and 335 deletions

View file

@ -7,5 +7,5 @@ nuget FsCheck.Xunit
nuget xunit.runner.console
nuget xunit.assert
nuget FAKE
nuget Mono.Cecil
nuget GtkSharp
nuget Mono.Cecil >= 0.10.0-beta1
nuget GtkSharp

View file

@ -1,165 +1,603 @@
NUGET
remote: https://www.nuget.org/api/v2
FAKE (4.28)
FsCheck (2.4)
FSharp.Core (>= 3.1.2.5)
FsCheck.Xunit (2.4)
FsCheck (>= 2.4)
xunit.extensibility.execution (>= 2.1 < 3.0)
FAKE (4.61.2)
FsCheck (2.9)
FSharp.Core (>= 4.1) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
FSharp.Core (>= 4.1.17) - framework: >= netstandard16
NETStandard.Library (>= 1.6.1) - framework: >= netstandard16
FsCheck.Xunit (2.9)
FsCheck (>= 2.9)
FSharp.Core (>= 4.1.17) - framework: >= netstandard16
NETStandard.Library (>= 1.6.1) - framework: >= netstandard16
xunit.abstractions (>= 2.0.1) - framework: >= netstandard16
xunit.core (>= 2.2) - framework: >= netstandard16
xunit.extensibility.execution (>= 2.2 < 3.0) - framework: >= net10, netstandard10, netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
FSharp.Compiler.Service (2.0.0.6)
FSharp.Core (4.0.0.1)
FSharp.Core (4.1.17) - framework: >= net10, >= netstandard10
System.Collections (>= 4.0.11) - framework: >= netstandard16
System.Console (>= 4.0) - framework: >= netstandard16
System.Diagnostics.Debug (>= 4.0.11) - framework: >= netstandard16
System.Diagnostics.Tools (>= 4.0.1) - framework: >= netstandard16
System.Globalization (>= 4.0.11) - framework: >= netstandard16
System.IO (>= 4.1) - framework: >= netstandard16
System.Linq (>= 4.1) - framework: >= netstandard16
System.Linq.Expressions (>= 4.1) - framework: >= netstandard16
System.Linq.Queryable (>= 4.0.1) - framework: >= netstandard16
System.Net.Requests (>= 4.0.11) - framework: >= netstandard16
System.Reflection (>= 4.1) - framework: >= netstandard16
System.Reflection.Extensions (>= 4.0.1) - framework: >= netstandard16
System.Resources.ResourceManager (>= 4.0.1) - framework: >= netstandard16
System.Runtime (>= 4.1) - framework: >= netstandard16
System.Runtime.Extensions (>= 4.1) - framework: >= netstandard16
System.Runtime.Numerics (>= 4.0.1) - framework: >= netstandard16
System.Text.RegularExpressions (>= 4.1) - framework: >= netstandard16
System.Threading (>= 4.0.11) - framework: >= netstandard16
System.Threading.Tasks (>= 4.0.11) - framework: >= netstandard16
System.Threading.Tasks.Parallel (>= 4.0.1) - framework: >= netstandard16
System.Threading.Thread (>= 4.0) - framework: >= netstandard16
System.Threading.ThreadPool (>= 4.0.10) - framework: >= netstandard16
System.Threading.Timer (>= 4.0.1) - framework: >= netstandard16
FSharp.Formatting (2.14.4)
FSharp.Compiler.Service (2.0.0.6)
FSharpVSPowerTools.Core (>= 2.3 < 2.4)
FSharpVSPowerTools.Core (2.3)
FSharp.Compiler.Service (>= 2.0.0.3)
GtkSharp (3.1.3)
Mono.Cecil (0.9.6.1)
System.Collections (4.0.10) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
System.Threading (>= 4.0) - framework: dnxcore50
System.Diagnostics.Contracts (4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Diagnostics.Debug (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Globalization (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.IO (4.0.10) - framework: dnxcore50
System.Globalization (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Text.Encoding (>= 4.0) - framework: dnxcore50
System.Text.Encoding (>= 4.0.10) - framework: dnxcore50
System.Text.Encoding.Extensions (>= 4.0) - framework: dnxcore50
System.Threading (>= 4.0) - framework: dnxcore50
System.Threading.Tasks (>= 4.0) - framework: dnxcore50
System.Linq (4.0) - framework: dnxcore50
System.Collections (>= 4.0.10) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
System.Linq.Expressions (4.0.10) - framework: dnxcore50
System.Collections (>= 4.0) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
System.Globalization (>= 4.0) - framework: dnxcore50
System.IO (>= 4.0) - framework: dnxcore50
System.Linq (>= 4.0) - framework: dnxcore50
System.ObjectModel (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection.Emit (>= 4.0) - framework: dnxcore50
System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Reflection.TypeExtensions (>= 4.0) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
System.Threading (>= 4.0) - framework: dnxcore50
System.ObjectModel (4.0.10) - framework: dnxcore50
System.Collections (>= 4.0.10) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Threading (>= 4.0.10) - framework: dnxcore50
System.Private.Uri (4.0) - framework: dnxcore50
System.Reflection (4.0.10) - framework: dnxcore50
System.IO (>= 4.0) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Reflection.Emit (4.0) - framework: dnxcore50
System.IO (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection.Emit.ILGeneration (>= 4.0) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Reflection.Emit.ILGeneration (4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Reflection.Extensions (4.0) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0.10) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Reflection.TypeExtensions (>= 4.0) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
System.Reflection.Primitives (4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Threading (>= 4.0) - framework: dnxcore50
System.Reflection.TypeExtensions (4.0) - framework: dnxcore50
System.Diagnostics.Contracts (>= 4.0) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0.10) - framework: dnxcore50
System.Linq (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0.10) - framework: dnxcore50
System.Reflection.Primitives (>= 4.0) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
System.Resources.ResourceManager (4.0) - framework: dnxcore50
System.Globalization (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime (4.0.20) - framework: dnxcore50
System.Private.Uri (>= 4.0) - framework: dnxcore50
System.Runtime.Extensions (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Text.Encoding (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Text.Encoding.Extensions (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Text.Encoding (>= 4.0.10) - framework: dnxcore50
System.Text.RegularExpressions (4.0.10) - framework: dnxcore50
System.Collections (>= 4.0.10) - framework: dnxcore50
System.Globalization (>= 4.0.10) - framework: dnxcore50
System.Resources.ResourceManager (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0.20) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0.10) - framework: dnxcore50
System.Threading (>= 4.0.10) - framework: dnxcore50
System.Threading (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Threading.Tasks (>= 4.0) - framework: dnxcore50
System.Threading.Tasks (4.0.10) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
xunit.abstractions (2.0) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, xamarinios, winv4.5, wpv8.0, wpav8.1
xunit.assert (2.1)
System.Collections (>= 4.0) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
System.Globalization (>= 4.0) - framework: dnxcore50
System.Linq (>= 4.0) - framework: dnxcore50
System.ObjectModel (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
System.Text.RegularExpressions (>= 4.0) - framework: dnxcore50
System.Threading.Tasks (>= 4.0) - framework: dnxcore50
xunit.extensibility.core (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, xamarinios, winv4.5, wpv8.0, wpav8.1
xunit.abstractions (2.0)
xunit.extensibility.execution (2.1)
System.Collections (>= 4.0) - framework: dnxcore50
System.Diagnostics.Debug (>= 4.0) - framework: dnxcore50
System.Globalization (>= 4.0) - framework: dnxcore50
System.IO (>= 4.0) - framework: dnxcore50
System.Linq (>= 4.0) - framework: dnxcore50
System.Linq.Expressions (>= 4.0) - framework: dnxcore50
System.Reflection (>= 4.0) - framework: dnxcore50
System.Reflection.Extensions (>= 4.0) - framework: dnxcore50
System.Runtime (>= 4.0) - framework: dnxcore50
System.Runtime.Extensions (>= 4.0) - framework: dnxcore50
System.Text.Encoding (>= 4.0) - framework: dnxcore50
System.Threading (>= 4.0) - framework: dnxcore50
System.Threading.Tasks (>= 4.0) - framework: dnxcore50
xunit.abstractions (>= 2.0) - framework: dnxcore50
xunit.extensibility.core (2.1) - framework: >= net45, dnx451, dnxcore50, monoandroid, monotouch, xamarinios, winv4.5, wpv8.0, wpav8.1
xunit.runner.console (2.1)
Microsoft.NETCore.Platforms (1.1) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Targets (1.1) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.Win32.Primitives (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
Mono.Cecil (0.10.0-beta6)
System.Collections (>= 4.0.11) - framework: >= netstandard13
System.IO.FileSystem (>= 4.0.1) - framework: >= netstandard13
System.IO.FileSystem.Primitives (>= 4.0.1) - framework: >= netstandard13
System.Reflection (>= 4.1) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.1) - framework: >= netstandard13
System.Security.Cryptography.Algorithms (>= 4.2) - framework: >= netstandard13
System.Security.Cryptography.Csp (>= 4.0) - framework: >= netstandard13
System.Threading (>= 4.0.11) - framework: >= netstandard13
NETStandard.Library (1.6.1) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard10
Microsoft.Win32.Primitives (>= 4.3) - framework: >= net46, >= netstandard13
System.AppContext (>= 4.3) - framework: >= net46, >= netstandard13
System.Collections (>= 4.3) - framework: >= netstandard10
System.Collections.Concurrent (>= 4.3) - framework: >= net45, >= netstandard11
System.Console (>= 4.3) - framework: >= net46, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard10
System.Diagnostics.Tools (>= 4.3) - framework: >= netstandard10
System.Diagnostics.Tracing (>= 4.3) - framework: >= net45, >= netstandard11
System.Globalization (>= 4.3) - framework: >= netstandard10
System.Globalization.Calendars (>= 4.3) - framework: >= net46, >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard10
System.IO.Compression (>= 4.3) - framework: >= net45, >= netstandard11
System.IO.Compression.ZipFile (>= 4.3) - framework: >= net46, >= netstandard13
System.IO.FileSystem (>= 4.3) - framework: >= net46, >= netstandard13
System.IO.FileSystem.Primitives (>= 4.3) - framework: >= net46, >= netstandard13
System.Linq (>= 4.3) - framework: >= netstandard10
System.Linq.Expressions (>= 4.3) - framework: >= netstandard10
System.Net.Http (>= 4.3) - framework: >= net45, >= netstandard11
System.Net.Primitives (>= 4.3) - framework: >= netstandard10
System.Net.Sockets (>= 4.3) - framework: >= net46, >= netstandard13
System.ObjectModel (>= 4.3) - framework: >= netstandard10
System.Reflection (>= 4.3) - framework: >= netstandard10
System.Reflection.Extensions (>= 4.3) - framework: >= netstandard10
System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard10
System.Runtime (>= 4.3) - framework: >= netstandard10
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard10
System.Runtime.Handles (>= 4.3) - framework: >= net46, >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: >= net45, >= netstandard11
System.Runtime.InteropServices.RuntimeInformation (>= 4.3) - framework: >= net45, >= netstandard11
System.Runtime.Numerics (>= 4.3) - framework: >= net45, >= netstandard11
System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net46, >= netstandard13
System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net46, >= netstandard13
System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net46, >= netstandard13
System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= net46, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard10
System.Text.Encoding.Extensions (>= 4.3) - framework: >= netstandard10
System.Text.RegularExpressions (>= 4.3) - framework: >= netstandard10
System.Threading (>= 4.3) - framework: >= netstandard10
System.Threading.Tasks (>= 4.3) - framework: >= netstandard10
System.Threading.Timer (>= 4.3) - framework: >= net451, >= netstandard12
System.Xml.ReaderWriter (>= 4.3) - framework: >= netstandard10
System.Xml.XDocument (>= 4.3) - framework: >= netstandard10
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.native.System (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
runtime.native.System.IO.Compression (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
runtime.native.System.Net.Http (4.3) - framework: >= net10, >= netstandard16
Microsoft.NETCore.Platforms (>= 1.1)
Microsoft.NETCore.Targets (>= 1.1)
runtime.native.System.Security.Cryptography.Apple (4.3) - framework: >= net10, >= netstandard16
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3)
runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.1)
runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3) - framework: >= net10, >= netstandard16
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.1) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
System.AppContext (4.3) - framework: >= net46, >= netstandard13, netstandard14, netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Buffers (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard11
System.Diagnostics.Tracing (>= 4.3) - framework: >= netstandard11
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard11
System.Runtime (>= 4.3) - framework: >= netstandard11
System.Threading (>= 4.3) - framework: >= netstandard11
System.Collections (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Collections.Concurrent (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Reflection (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Console (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard13
System.Diagnostics.Debug (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Diagnostics.DiagnosticSource (4.3.1) - framework: >= net10, netstandard13, >= netstandard16
System.Collections (>= 4.3) - framework: netstandard11, >= netstandard13
System.Diagnostics.Tracing (>= 4.3) - framework: netstandard11, >= netstandard13
System.Reflection (>= 4.3) - framework: netstandard11, >= netstandard13
System.Runtime (>= 4.3) - framework: netstandard11, >= netstandard13
System.Threading (>= 4.3) - framework: netstandard11, >= netstandard13
System.Diagnostics.Tools (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Diagnostics.Tracing (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15
System.Globalization (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Globalization.Calendars (4.3) - framework: >= net46, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.Globalization (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Globalization.Extensions (4.3) - framework: >= net10, >= netstandard16
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
System.Globalization (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13
System.IO (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.IO.Compression (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
runtime.native.System (>= 4.3) - framework: >= netstandard13
runtime.native.System.IO.Compression (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Buffers (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO.Compression.ZipFile (4.3) - framework: >= net46, >= netstandard13, netstandard14, netstandard15
System.Buffers (>= 4.3) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.IO.Compression (>= 4.3) - framework: >= netstandard13
System.IO.FileSystem (>= 4.3) - framework: >= netstandard13
System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard13
System.IO.FileSystem (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.IO.FileSystem.Primitives (>= 4.3) - framework: >= net46, >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: >= netstandard13
System.IO.FileSystem.Primitives (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Linq (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard16
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Linq.Expressions (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16
System.IO (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Linq (>= 4.3) - framework: dnxcore50, >= netstandard16
System.ObjectModel (>= 4.3) - framework: >= netstandard16
System.Reflection (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16
System.Reflection.Emit (>= 4.3) - framework: >= netstandard16
System.Reflection.Emit.ILGeneration (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Reflection.Emit.Lightweight (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Reflection.TypeExtensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Linq.Queryable (4.3) - framework: >= net10, >= netstandard16
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Linq (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Linq.Expressions (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Net.Http (4.3.2) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard13, >= netstandard16
Microsoft.Win32.Primitives (>= 4.3) - framework: netstandard13
runtime.native.System (>= 4.3) - framework: >= netstandard16
runtime.native.System.Net.Http (>= 4.3) - framework: >= netstandard16
runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16
System.Collections (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Diagnostics.DiagnosticSource (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Globalization (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Globalization.Extensions (>= 4.3) - framework: >= netstandard16
System.IO (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16
System.IO.Compression (>= 4.3) - framework: netstandard13
System.IO.FileSystem (>= 4.3) - framework: >= netstandard16
System.Net.Primitives (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Runtime.Handles (>= 4.3) - framework: netstandard13, >= netstandard16
System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Encoding (>= 4.3) - framework: netstandard13, >= netstandard16
System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Primitives (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.X509Certificates (>= 4.3) - framework: >= net46, dnxcore50, netstandard13, >= netstandard16
System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16
System.Threading (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard16
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, netstandard13, >= netstandard16
System.Net.Primitives (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Net.Requests (4.3) - framework: >= net10, >= netstandard16
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
System.Net.Http (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Net.Primitives (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
System.Net.WebHeaderCollection (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard11, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Net.Sockets (4.3) - framework: >= net46, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.Net.Primitives (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: >= netstandard13
System.Net.WebHeaderCollection (4.3) - framework: >= net10, >= netstandard16
System.Collections (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13
System.ObjectModel (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Reflection (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.IO (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Reflection.Emit (4.3) - framework: >= net10, >= netstandard16
System.IO (>= 4.3) - framework: >= netstandard11
System.Reflection (>= 4.3) - framework: >= netstandard11
System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard11
System.Reflection.Primitives (>= 4.3) - framework: >= netstandard11
System.Runtime (>= 4.3) - framework: >= netstandard11
System.Reflection.Emit.ILGeneration (4.3) - framework: >= net10, >= netstandard16
System.Reflection (>= 4.3) - framework: >= netstandard10
System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10
System.Runtime (>= 4.3) - framework: >= netstandard10
System.Reflection.Emit.Lightweight (4.3) - framework: >= net10, >= netstandard16
System.Reflection (>= 4.3) - framework: >= netstandard10
System.Reflection.Emit.ILGeneration (>= 4.3) - framework: >= netstandard10
System.Reflection.Primitives (>= 4.3) - framework: >= netstandard10
System.Runtime (>= 4.3) - framework: >= netstandard10
System.Reflection.Extensions (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10
System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Reflection.Primitives (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Reflection.TypeExtensions (4.3) - framework: >= net10, >= netstandard16
System.Reflection (>= 4.3) - framework: >= net462, dnxcore50, netstandard13, >= netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard15
System.Resources.ResourceManager (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard10
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard10
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard10
System.Runtime (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard12, netstandard13, >= netstandard15
System.Runtime.Extensions (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard15
System.Runtime.Handles (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.InteropServices (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11
System.Reflection (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11
System.Reflection.Primitives (>= 4.3) - framework: dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11
System.Runtime (>= 4.3) - framework: net462, >= net463, dnxcore50, netstandard11, netstandard12, netstandard13, >= netstandard15, netcore11
System.Runtime.Handles (>= 4.3) - framework: dnxcore50, netstandard13, >= netstandard15, netcore11
System.Runtime.InteropServices.RuntimeInformation (4.3) - framework: >= net45, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
runtime.native.System (>= 4.3) - framework: >= netstandard11
System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard11
System.Reflection.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard11
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard11
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard11
System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard11
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard11
System.Runtime.Numerics (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Security.Cryptography.Algorithms (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard16
runtime.native.System.Security.Cryptography.Apple (>= 4.3) - framework: >= netstandard16
runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16
System.Collections (>= 4.3) - framework: >= netstandard16
System.IO (>= 4.3) - framework: >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime (>= 4.3) - framework: >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime.Handles (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime.Numerics (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net463, dnxcore50, >= netstandard16
System.Security.Cryptography.Primitives (>= 4.3) - framework: net46, net461, >= net463, dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Security.Cryptography.Cng (4.3) - framework: >= net46, >= netstandard16
Microsoft.NETCore.Platforms (>= 1.1) - framework: netstandard14, >= netstandard16
System.IO (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: netstandard14, >= netstandard16
System.Runtime (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: netstandard14, >= netstandard16
System.Runtime.Handles (>= 4.3) - framework: netstandard13, netstandard14, >= netstandard16
System.Runtime.InteropServices (>= 4.3) - framework: netstandard14, >= netstandard16
System.Security.Cryptography.Algorithms (>= 4.3) - framework: net46, net461, >= net463, netstandard13, netstandard14, >= netstandard16
System.Security.Cryptography.Encoding (>= 4.3) - framework: netstandard14, >= netstandard16
System.Security.Cryptography.Primitives (>= 4.3) - framework: net46, net461, >= net463, netstandard13, netstandard14, >= netstandard16
System.Text.Encoding (>= 4.3) - framework: netstandard14, >= netstandard16
System.Security.Cryptography.Csp (4.3) - framework: >= net46, >= netstandard13
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.Reflection (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net46, >= netstandard13
System.Security.Cryptography.Encoding (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net46, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard13
System.Threading (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.Encoding (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: >= netstandard13
runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard13
System.Collections (>= 4.3) - framework: >= netstandard13
System.Collections.Concurrent (>= 4.3) - framework: >= netstandard13
System.Linq (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.Primitives (>= 4.3) - framework: >= netstandard13
System.Text.Encoding (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.OpenSsl (4.3) - framework: >= net10, >= netstandard16
runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= net463, >= netstandard16, monoandroid, monotouch, xamarinios, xamarinmac
System.Collections (>= 4.3) - framework: >= netstandard16
System.IO (>= 4.3) - framework: >= net463, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard16
System.Runtime (>= 4.3) - framework: >= net463, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: >= net463, >= netstandard16
System.Runtime.Handles (>= 4.3) - framework: >= netstandard16
System.Runtime.InteropServices (>= 4.3) - framework: >= netstandard16
System.Runtime.Numerics (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Algorithms (>= 4.3) - framework: >= net463, >= netstandard16
System.Security.Cryptography.Encoding (>= 4.3) - framework: >= net463, >= netstandard16
System.Security.Cryptography.Primitives (>= 4.3) - framework: >= net463, >= netstandard16
System.Text.Encoding (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Primitives (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard13
System.Globalization (>= 4.3) - framework: >= netstandard13
System.IO (>= 4.3) - framework: >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: >= netstandard13
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Threading (>= 4.3) - framework: >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: >= netstandard13
System.Security.Cryptography.X509Certificates (4.3) - framework: >= net46, >= netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard16
runtime.native.System (>= 4.3) - framework: >= netstandard16
runtime.native.System.Net.Http (>= 4.3) - framework: >= netstandard16
runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Diagnostics.Debug (>= 4.3) - framework: >= netstandard16
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Globalization.Calendars (>= 4.3) - framework: dnxcore50, >= netstandard16
System.IO (>= 4.3) - framework: dnxcore50, >= netstandard16
System.IO.FileSystem (>= 4.3) - framework: dnxcore50, >= netstandard16
System.IO.FileSystem.Primitives (>= 4.3) - framework: >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime.Handles (>= 4.3) - framework: dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime.Numerics (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Security.Cryptography.Algorithms (>= 4.3) - framework: net46, >= net461, dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Security.Cryptography.Cng (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Security.Cryptography.Csp (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Encoding (>= 4.3) - framework: net46, >= net461, dnxcore50, netstandard13, netstandard14, >= netstandard16
System.Security.Cryptography.OpenSsl (>= 4.3) - framework: >= netstandard16
System.Security.Cryptography.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Text.Encoding (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Text.Encoding.Extensions (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Text.RegularExpressions (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, netstandard13, >= netstandard16, netcore11
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard16
System.Threading (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Threading.Tasks (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Threading.Tasks.Extensions (4.3) - framework: >= net10, >= netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: >= netstandard10
System.Runtime (>= 4.3) - framework: >= netstandard10
System.Threading.Tasks (>= 4.3) - framework: >= netstandard10
System.Threading.Tasks.Parallel (4.3) - framework: >= net10, >= netstandard16
System.Collections.Concurrent (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Tracing (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard11, >= netstandard13
System.Threading.Thread (4.3) - framework: >= net10, >= netstandard16
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Threading.ThreadPool (4.3) - framework: >= net10, >= netstandard16
System.Runtime (>= 4.3) - framework: >= netstandard13
System.Runtime.Handles (>= 4.3) - framework: >= netstandard13
System.Threading.Timer (4.3) - framework: >= net10, >= netstandard12, netstandard13, netstandard14, netstandard15
Microsoft.NETCore.Platforms (>= 1.1) - framework: dnxcore50, >= netstandard12
Microsoft.NETCore.Targets (>= 1.1) - framework: dnxcore50, >= netstandard12
System.Runtime (>= 4.3) - framework: dnxcore50, >= netstandard12
System.Xml.ReaderWriter (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.IO.FileSystem (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO.FileSystem.Primitives (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime.InteropServices (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Text.Encoding.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Text.RegularExpressions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading.Tasks (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Threading.Tasks.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Xml.XDocument (4.3) - framework: >= net10, >= netstandard11, netstandard12, netstandard13, netstandard14, netstandard15
System.Collections (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Debug (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Diagnostics.Tools (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Globalization (>= 4.3) - framework: dnxcore50, >= netstandard13
System.IO (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Reflection (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Resources.ResourceManager (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Runtime (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
System.Runtime.Extensions (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Text.Encoding (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Threading (>= 4.3) - framework: dnxcore50, >= netstandard13
System.Xml.ReaderWriter (>= 4.3) - framework: dnxcore50, netstandard10, >= netstandard13
xunit.abstractions (2.0.1) - framework: >= net452, >= netstandard11
NETStandard.Library (>= 1.6) - framework: >= netstandard10
xunit.assert (2.2)
NETStandard.Library (>= 1.6) - framework: >= netstandard11
xunit.core (2.2) - framework: >= netstandard16
xunit.extensibility.core (2.2)
xunit.extensibility.execution (2.2)
xunit.extensibility.core (2.2) - framework: >= net452, >= netstandard11
NETStandard.Library (>= 1.6) - framework: >= netstandard11
xunit.abstractions (>= 2.0.1) - framework: >= net452, >= netstandard11
xunit.extensibility.execution (2.2) - framework: >= net10, >= netstandard10
NETStandard.Library (>= 1.6) - framework: >= netstandard11
xunit.extensibility.core (2.2) - framework: >= net452, >= netstandard11
xunit.runner.console (2.2)

View file

@ -0,0 +1,56 @@
using System;
using Mono.Cecil.Cil;
namespace OpenTK.Rewrite
{
/// <summary>
/// Acts as a unique identifier for a generated named variable that can be passed between methods. Replaces uses of
/// variable names from Mono.Cecil.
/// </summary>
internal sealed class GeneratedVariableIdentifier
{
/// <summary>
/// The <see cref="MethodBody"/> which the variable is in.
/// </summary>
public MethodBody Body { get; }
/// <summary>
/// The <see cref="VariableDefinition"/> which the variable idetifier maps to.
/// </summary>
public VariableDefinition Definition { get; }
/// <summary>
/// The name of the generated variable.
/// </summary>
public string Name { get; }
/// <summary>
/// Initializes a new instance of the <see cref="GeneratedVariableIdentifier"/> class.
/// </summary>
/// <param name="body">The method body which the variable is in.</param>
/// <param name="name">The name of the generated variable.</param>
/// <param name="index">The index of the generated variable in its method.</param>
/// <exception cref="ArgumentException"></exception>
public GeneratedVariableIdentifier(MethodBody body, VariableDefinition definition, string name)
{
if (body == null)
{
throw new ArgumentException("The body argument cannot be null.", nameof(body));
}
if (definition == null)
{
throw new ArgumentException("The definition argument cannot be null.", nameof(body));
}
if (string.IsNullOrEmpty(name))
{
throw new ArgumentException("The name argument cannot be null or empty", nameof(name));
}
this.Body = body;
this.Definition = definition;
this.Name = name;
}
}
}

View file

@ -52,6 +52,7 @@
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="GeneratedVariableIdentifier.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
@ -84,27 +85,13 @@
</MonoDevelop>
</ProjectExtensions>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v2.0' Or $(TargetFrameworkVersion) == 'v3.0')">
<ItemGroup>
<Reference Include="Mono.Cecil.Mdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net20\Mono.Cecil.Mdb.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil.Pdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net20\Mono.Cecil.Pdb.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\net20\Mono.Cecil.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v3.5'">
<ItemGroup>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\net35\Mono.Cecil.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil.Mdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net35\Mono.Cecil.Mdb.dll</HintPath>
<Private>True</Private>
@ -120,15 +107,15 @@
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\net35\Mono.Cecil.dll</HintPath>
<HintPath>..\..\packages\Mono.Cecil\lib\net40\Mono.Cecil.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.0'">
<ItemGroup>
<Reference Include="Mono.Cecil.Mdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net40\Mono.Cecil.Mdb.dll</HintPath>
<Private>True</Private>
@ -144,50 +131,653 @@
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="($(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')) Or ($(TargetFrameworkIdentifier) == '.NETCoreApp' And ($(TargetFrameworkVersion) == 'v1.0' Or $(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v2.0'))">
<ItemGroup>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\net40\Mono.Cecil.dll</HintPath>
<HintPath>..\..\packages\Mono.Cecil\lib\netstandard1.3\Mono.Cecil.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3')">
<ItemGroup>
<Reference Include="Mono.Cecil.Mdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Mdb.dll</HintPath>
<HintPath>..\..\packages\Mono.Cecil\lib\netstandard1.3\Mono.Cecil.Mdb.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil.Pdb">
<HintPath>..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Pdb.dll</HintPath>
<HintPath>..\..\packages\Mono.Cecil\lib\netstandard1.3\Mono.Cecil.Pdb.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil.Rocks">
<HintPath>..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Rocks.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == 'Silverlight' And $(TargetFrameworkVersion) == 'v5.0'">
<ItemGroup>
<Reference Include="Mono.Cecil.Rocks">
<HintPath>..\..\packages\Mono.Cecil\lib\sl5\Mono.Cecil.Rocks.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="Mono.Cecil">
<HintPath>..\..\packages\Mono.Cecil\lib\sl5\Mono.Cecil.dll</HintPath>
<HintPath>..\..\packages\Mono.Cecil\lib\netstandard1.3\Mono.Cecil.Rocks.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Collections">
<HintPath>..\..\packages\System.Collections\ref\netstandard1.0\System.Collections.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Collections">
<HintPath>..\..\packages\System.Collections\ref\netstandard1.3\System.Collections.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Collections.Concurrent">
<HintPath>..\..\packages\System.Collections.Concurrent\lib\netstandard1.3\System.Collections.Concurrent.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Diagnostics.Debug">
<HintPath>..\..\packages\System.Diagnostics.Debug\ref\netstandard1.0\System.Diagnostics.Debug.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Diagnostics.Debug">
<HintPath>..\..\packages\System.Diagnostics.Debug\ref\netstandard1.3\System.Diagnostics.Debug.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="mscorlib">
<Paket>True</Paket>
</Reference>
<Reference Include="System.Diagnostics.Tracing">
<HintPath>..\..\packages\System.Diagnostics.Tracing\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.1'">
<ItemGroup>
<Reference Include="System.Diagnostics.Tracing">
<HintPath>..\..\packages\System.Diagnostics.Tracing\ref\netstandard1.1\System.Diagnostics.Tracing.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.2'">
<ItemGroup>
<Reference Include="System.Diagnostics.Tracing">
<HintPath>..\..\packages\System.Diagnostics.Tracing\ref\netstandard1.2\System.Diagnostics.Tracing.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.Diagnostics.Tracing">
<HintPath>..\..\packages\System.Diagnostics.Tracing\ref\netstandard1.3\System.Diagnostics.Tracing.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Diagnostics.Tracing">
<HintPath>..\..\packages\System.Diagnostics.Tracing\ref\netstandard1.5\System.Diagnostics.Tracing.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Globalization">
<HintPath>..\..\packages\System.Globalization\ref\netstandard1.0\System.Globalization.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Globalization">
<HintPath>..\..\packages\System.Globalization\ref\netstandard1.3\System.Globalization.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.IO">
<HintPath>..\..\packages\System.IO\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.IO">
<HintPath>..\..\packages\System.IO\ref\netstandard1.0\System.IO.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.IO">
<HintPath>..\..\packages\System.IO\ref\netstandard1.3\System.IO.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.IO">
<HintPath>..\..\packages\System.IO\ref\netstandard1.5\System.IO.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')">
<ItemGroup>
<Reference Include="mscorlib">
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.IO.FileSystem">
<HintPath>..\..\packages\System.IO.FileSystem\lib\net46\System.IO.FileSystem.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.IO.FileSystem">
<HintPath>..\..\packages\System.IO.FileSystem\ref\netstandard1.3\System.IO.FileSystem.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.IO.FileSystem.Primitives">
<HintPath>..\..\packages\System.IO.FileSystem.Primitives\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.IO.FileSystem.Primitives">
<HintPath>..\..\packages\System.IO.FileSystem.Primitives\lib\netstandard1.3\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Linq">
<HintPath>..\..\packages\System.Linq\lib\net463\System.Linq.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Linq">
<HintPath>..\..\packages\System.Linq\lib\netstandard1.6\System.Linq.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Reflection">
<HintPath>..\..\packages\System.Reflection\lib\net462\System.Reflection.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Reflection">
<HintPath>..\..\packages\System.Reflection\ref\netstandard1.0\System.Reflection.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.Reflection">
<HintPath>..\..\packages\System.Reflection\ref\netstandard1.3\System.Reflection.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Reflection">
<HintPath>..\..\packages\System.Reflection\ref\netstandard1.5\System.Reflection.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1')">
<ItemGroup>
<Reference Include="System.ComponentModel.Composition">
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.ComponentModel.Composition">
<Paket>True</Paket>
</Reference>
<Reference Include="System.Runtime">
<HintPath>..\..\packages\System.Runtime\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.1'">
<ItemGroup>
<Reference Include="System.Runtime">
<HintPath>..\..\packages\System.Runtime\ref\netstandard1.0\System.Runtime.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.2'">
<ItemGroup>
<Reference Include="System.Runtime">
<HintPath>..\..\packages\System.Runtime\ref\netstandard1.2\System.Runtime.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.Runtime">
<HintPath>..\..\packages\System.Runtime\ref\netstandard1.3\System.Runtime.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime">
<HintPath>..\..\packages\System.Runtime\ref\netstandard1.5\System.Runtime.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Runtime.Extensions">
<HintPath>..\..\packages\System.Runtime.Extensions\lib\net462\System.Runtime.Extensions.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Runtime.Extensions">
<HintPath>..\..\packages\System.Runtime.Extensions\ref\netstandard1.0\System.Runtime.Extensions.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.Runtime.Extensions">
<HintPath>..\..\packages\System.Runtime.Extensions\ref\netstandard1.3\System.Runtime.Extensions.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime.Extensions">
<HintPath>..\..\packages\System.Runtime.Extensions\ref\netstandard1.5\System.Runtime.Extensions.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime.Handles">
<HintPath>..\..\packages\System.Runtime.Handles\ref\netstandard1.3\System.Runtime.Handles.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.6.2'">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\lib\net462\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\lib\net463\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.1'">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\ref\netstandard1.1\System.Runtime.InteropServices.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.2'">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\ref\netstandard1.2\System.Runtime.InteropServices.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4')">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\ref\netstandard1.3\System.Runtime.InteropServices.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime.InteropServices">
<HintPath>..\..\packages\System.Runtime.InteropServices\ref\netstandard1.5\System.Runtime.InteropServices.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Numerics">
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2' Or $(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime.Numerics">
<HintPath>..\..\packages\System.Runtime.Numerics\ref\netstandard1.1\System.Runtime.Numerics.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Runtime.Numerics">
<HintPath>..\..\packages\System.Runtime.Numerics\lib\netstandard1.3\System.Runtime.Numerics.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.6'">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\lib\net46\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And $(TargetFrameworkVersion) == 'v1.3'">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\ref\netstandard1.3\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\ref\netstandard1.4\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Algorithms">
<HintPath>..\..\packages\System.Security.Cryptography.Algorithms\ref\netstandard1.6\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Csp">
<HintPath>..\..\packages\System.Security.Cryptography.Csp\lib\net46\System.Security.Cryptography.Csp.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Csp">
<HintPath>..\..\packages\System.Security.Cryptography.Csp\ref\netstandard1.3\System.Security.Cryptography.Csp.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Encoding">
<HintPath>..\..\packages\System.Security.Cryptography.Encoding\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Encoding">
<HintPath>..\..\packages\System.Security.Cryptography.Encoding\ref\netstandard1.3\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Primitives">
<HintPath>..\..\packages\System.Security.Cryptography.Primitives\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Security.Cryptography.Primitives">
<HintPath>..\..\packages\System.Security.Cryptography.Primitives\lib\netstandard1.3\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Text.Encoding">
<HintPath>..\..\packages\System.Text.Encoding\ref\netstandard1.0\System.Text.Encoding.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Text.Encoding">
<HintPath>..\..\packages\System.Text.Encoding\ref\netstandard1.3\System.Text.Encoding.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Threading">
<HintPath>..\..\packages\System.Threading\lib\netstandard1.3\System.Threading.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.1' Or $(TargetFrameworkVersion) == 'v1.2')">
<ItemGroup>
<Reference Include="System.Threading.Tasks">
<HintPath>..\..\packages\System.Threading.Tasks\ref\netstandard1.0\System.Threading.Tasks.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETStandard' And ($(TargetFrameworkVersion) == 'v1.3' Or $(TargetFrameworkVersion) == 'v1.4' Or $(TargetFrameworkVersion) == 'v1.5' Or $(TargetFrameworkVersion) == 'v1.6' Or $(TargetFrameworkVersion) == 'v2.0')">
<ItemGroup>
<Reference Include="System.Threading.Tasks">
<HintPath>..\..\packages\System.Threading.Tasks\ref\netstandard1.3\System.Threading.Tasks.dll</HintPath>
<Private>False</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
</Project>

View file

@ -18,7 +18,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Mono.Cecil;
using Mono.Cecil.Cil;
@ -63,34 +62,27 @@ namespace OpenTK.Rewrite
void Rewrite(string file, string keyfile, IEnumerable<string> options)
{
dllimport = options.Contains("-dllimport");
IEnumerable<string> optionsEnumerated = options as IList<string> ?? options.ToList();
dllimport = optionsEnumerated.Contains("-dllimport");
// Specify assembly read and write parameters
// We want to keep a valid symbols file (pdb or mdb)
var read_params = new ReaderParameters();
var write_params = new WriterParameters();
var pdb = Path.ChangeExtension(file, "pdb");
var mdb = file + ".mdb";
ISymbolReaderProvider provider = null;
if (File.Exists(pdb))
{
provider = new Mono.Cecil.Pdb.PdbReaderProvider();
}
else if (File.Exists(mdb))
{
provider = new Mono.Cecil.Mdb.MdbReaderProvider();
}
read_params.SymbolReaderProvider = provider;
read_params.ReadSymbols = true;
read_params.ReadWrite = true;
write_params.WriteSymbols = true;
if (!String.IsNullOrEmpty(keyfile) && File.Exists(keyfile))
{
keyfile = Path.GetFullPath(keyfile);
var fs = new FileStream(keyfile, FileMode.Open, FileAccess.Read);
var keypair = new System.Reflection.StrongNameKeyPair(fs);
fs.Close();
write_params.StrongNameKeyPair = keypair;
using (var fs = new FileStream(keyfile, FileMode.Open, FileAccess.Read))
{
var keypair = new System.Reflection.StrongNameKeyPair(fs);
write_params.StrongNameKeyPair = keypair;
}
}
else
{
@ -98,57 +90,59 @@ namespace OpenTK.Rewrite
}
// Load assembly and process all modules
var assembly = AssemblyDefinition.ReadAssembly(file, read_params);
var rewritten = assembly.CustomAttributes.FirstOrDefault(a => a.AttributeType.Name == "RewrittenAttribute");
if (rewritten == null)
using (AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly(file, read_params))
{
foreach (var module in assembly.Modules)
var rewritten = assembly.CustomAttributes.FirstOrDefault(a => a.AttributeType.Name == "RewrittenAttribute");
if (rewritten == null)
{
foreach (var reference in module.AssemblyReferences)
foreach (var module in assembly.Modules)
{
try
foreach (var reference in module.AssemblyReferences)
{
var resolved = module.AssemblyResolver.Resolve(reference);
if (reference.Name == "mscorlib")
try
{
mscorlib = resolved;
var resolved = module.AssemblyResolver.Resolve(reference);
if (reference.Name == "mscorlib")
{
mscorlib = resolved;
}
}
catch (Exception e)
{
Console.Error.WriteLine(e.ToString());
}
}
catch (Exception e)
}
if (mscorlib == null)
{
Console.Error.WriteLine("Failed to locate mscorlib");
return;
}
TypeMarshal = mscorlib.MainModule.GetType("System.Runtime.InteropServices.Marshal");
TypeStringBuilder = mscorlib.MainModule.GetType("System.Text.StringBuilder");
TypeVoid = mscorlib.MainModule.GetType("System.Void");
TypeIntPtr = mscorlib.MainModule.GetType("System.IntPtr");
TypeInt32 = mscorlib.MainModule.GetType("System.Int32");
TypeBindingsBase = assembly.Modules.Select(m => m.GetType("OpenTK.BindingsBase")).First();
foreach (var module in assembly.Modules)
{
foreach (var type in module.Types)
{
Console.Error.WriteLine(e.ToString());
Rewrite(type, optionsEnumerated);
}
}
}
if (mscorlib == null)
else
{
Console.Error.WriteLine("Failed to locate mscorlib");
return;
Console.Error.WriteLine("Error: assembly has already been rewritten");
}
TypeMarshal = mscorlib.MainModule.GetType("System.Runtime.InteropServices.Marshal");
TypeStringBuilder = mscorlib.MainModule.GetType("System.Text.StringBuilder");
TypeVoid = mscorlib.MainModule.GetType("System.Void");
TypeIntPtr = mscorlib.MainModule.GetType("System.IntPtr");
TypeInt32 = mscorlib.MainModule.GetType("System.Int32");
TypeBindingsBase = assembly.Modules.Select(m => m.GetType("OpenTK.BindingsBase")).First();
foreach (var module in assembly.Modules)
{
foreach (var type in module.Types)
{
Rewrite(type, options);
}
}
// Save rewritten assembly
assembly.Write(write_params);
}
else
{
Console.Error.WriteLine("Error: assembly has already been rewritten");
}
// Save rewritten assembly
assembly.Write(file, write_params);
}
void Rewrite(TypeDefinition type, IEnumerable<string> options)
@ -171,12 +165,12 @@ namespace OpenTK.Rewrite
var rewritten_constructor = type.GetConstructors().First();
var rewritten = new CustomAttribute(rewritten_constructor);
rewritten.ConstructorArguments.Add(new CustomAttributeArgument(
type.Module.Import(mscorlib.MainModule.GetType("System.Boolean")), true));
type.Module.ImportReference(mscorlib.MainModule.GetType("System.Boolean")), true));
type.Module.Assembly.CustomAttributes.Add(rewritten);
}
}
int GetSlot(MethodDefinition signature)
static int GetSlot(MethodDefinition signature)
{
// Pretend there is no slots if we want to force everything to work through DllImport (Android & iOS)
if (dllimport)
@ -200,18 +194,19 @@ namespace OpenTK.Rewrite
wrapper_signatures.AddRange(type.Methods
.Where(m => m.IsPublic && m.CustomAttributes.Any(a => a.AttributeType.Name == "AutoGeneratedAttribute")));
IEnumerable<string> optionsEnumerated = options as IList<string> ?? options.ToList();
foreach (var wrapper in wrapper_signatures)
{
var autogenerated = wrapper.CustomAttributes
.Where(a => a.AttributeType.Name == "AutoGeneratedAttribute");
if (autogenerated.Count() > 0)
.Where(a => a.AttributeType.Name == "AutoGeneratedAttribute").ToList();
if (autogenerated.Any())
{
var signature_name = (string)autogenerated.First()
.Fields.First(f => f.Name == "EntryPoint").Argument.Value;
var signature = entry_signatures.FirstOrDefault(s => s.Name == signature_name);
int slot = GetSlot(signature);
ProcessMethod(wrapper, signature, slot, entry_points, options);
ProcessMethod(wrapper, signature, slot, entry_points, optionsEnumerated);
}
}
@ -221,12 +216,12 @@ namespace OpenTK.Rewrite
{
foreach (var nested_type in type.NestedTypes)
{
Rewrite(nested_type, entry_points, entry_signatures, options);
Rewrite(nested_type, entry_points, entry_signatures, optionsEnumerated);
}
}
}
void RemoveNativeSignatures(TypeDefinition type, List<MethodDefinition> methods)
static void RemoveNativeSignatures(TypeDefinition type, IEnumerable<MethodDefinition> methods)
{
// Remove all DllImports for functions called through calli, since
// their signatures are embedded directly into the calli callsite.
@ -237,7 +232,7 @@ namespace OpenTK.Rewrite
}
}
void RemoveSupportingAttributes(TypeDefinition type)
static void RemoveSupportingAttributes(TypeDefinition type)
{
foreach (var method in type.Methods)
{
@ -266,20 +261,22 @@ namespace OpenTK.Rewrite
// and push each parameter on the stack
DebugVariables vars = null;
if (options.Contains("-debug"))
IEnumerable<string> optionsEnumerated = options as IList<string> ?? options.ToList();
if (optionsEnumerated.Contains("-debug"))
{
vars = EmitDebugPrologue(wrapper, il);
}
// Patch convenience wrappers
List<GeneratedVariableIdentifier> generatedVariables = new List<GeneratedVariableIdentifier>();
if (wrapper.Parameters.Count == native.Parameters.Count)
{
EmitParameters(wrapper, native, body, il);
generatedVariables = EmitParameters(wrapper, native, body, il);
}
else
{
int difference = native.Parameters.Count - wrapper.Parameters.Count;
EmitConvenienceWrapper(wrapper, native, difference, body, il);
generatedVariables = EmitConvenienceWrapper(wrapper, native, difference, body, il);
}
if (slot != -1)
@ -301,9 +298,9 @@ namespace OpenTK.Rewrite
EmitReturnTypeWrapper(wrapper, native, body, il);
}
EmitParameterEpilogues(wrapper, native, body, il);
EmitParameterEpilogues(wrapper, native, body, il, generatedVariables);
if (options.Contains("-debug"))
if (optionsEnumerated.Contains("-debug"))
{
EmitDebugEpilogue(wrapper, il, vars);
}
@ -339,7 +336,7 @@ namespace OpenTK.Rewrite
// something like "type namespace.class::method(type arg)"
var module = il.Body.Method.FullName;
module = module.Substring(module.IndexOf(' ') + 1);
module = module.Substring(0, module.IndexOf("::"));
module = module.Substring(0, module.IndexOf("::", StringComparison.Ordinal));
module = module.Substring(0, module.LastIndexOf('.'));
// Only works for Graphics modules due to hardcoded use of
@ -479,7 +476,7 @@ namespace OpenTK.Rewrite
// String return-type wrapper
// return new string((sbyte*)((void*)GetString()));
var intptr_to_voidpointer = wrapper.Module.Import(mscorlib.MainModule.GetType("System.IntPtr").GetMethods()
var intptr_to_voidpointer = wrapper.Module.ImportReference(mscorlib.MainModule.GetType("System.IntPtr").GetMethods()
.First(m =>
{
return
@ -487,7 +484,7 @@ namespace OpenTK.Rewrite
m.ReturnType.Name == "Void*";
}));
var string_constructor = wrapper.Module.Import(mscorlib.MainModule.GetType("System.String").GetConstructors()
var string_constructor = wrapper.Module.ImportReference(mscorlib.MainModule.GetType("System.String").GetConstructors()
.First(m =>
{
var p = m.Parameters;
@ -521,28 +518,42 @@ namespace OpenTK.Rewrite
}
}
static void EmitParameterEpilogues(MethodDefinition wrapper, MethodDefinition native, MethodBody body, ILProcessor il)
static void EmitParameterEpilogues(MethodDefinition wrapper, MethodDefinition native, MethodBody body, ILProcessor il,
List<GeneratedVariableIdentifier> generatedVariables)
{
foreach (var p in wrapper.Parameters)
foreach (var p in wrapper.Parameters)
{
if (p.ParameterType.Name == "StringBuilder")
{
EmitStringBuilderEpilogue(wrapper, native, p, body, il);
EmitStringBuilderEpilogue(wrapper, native, p, body, il, GetGeneratedVariable(generatedVariables, p.Name + "_sb_ptr", body));
}
if (!p.ParameterType.IsArray && p.ParameterType.Name == "String")
{
EmitStringEpilogue(wrapper, p, body, il);
EmitStringEpilogue(wrapper, p, body, il,GetGeneratedVariable(generatedVariables, p.Name + "_string_ptr", body));
}
if (p.ParameterType.IsArray && p.ParameterType.GetElementType().Name == "String")
{
EmitStringArrayEpilogue(wrapper, p, body, il);
EmitStringArrayEpilogue(wrapper, p, body, il, GetGeneratedVariable(generatedVariables, p.Name + "_string_array_ptr", body));
}
}
}
static void EmitStringBuilderParameter(MethodDefinition method, ParameterDefinition parameter, MethodBody body, ILProcessor il)
/// <summary>
/// Retrieves a generated variable by searching the given list by the variable's name and associated method body.
/// </summary>
/// <param name="variableIdentifiers"></param>
/// <param name="name"></param>
/// <param name="body"></param>
/// <returns></returns>
static GeneratedVariableIdentifier GetGeneratedVariable(IEnumerable<GeneratedVariableIdentifier> variableIdentifiers, string name, MethodBody body)
{
return variableIdentifiers.FirstOrDefault(v => v.Name == name && v.Body == body &&
body.Variables.Contains(v.Definition));
}
static GeneratedVariableIdentifier EmitStringBuilderParameter(MethodDefinition method, ParameterDefinition parameter, MethodBody body, ILProcessor il)
{
var p = parameter.ParameterType;
@ -557,26 +568,36 @@ namespace OpenTK.Rewrite
// Marshal.FreeHGlobal(sb_ptr);
// }
// Make sure we have imported StringBuilder::Capacity and Marshal::AllocHGlobal
var sb_get_capacity = method.Module.Import(TypeStringBuilder.Methods.First(m => m.Name == "get_Capacity"));
var alloc_hglobal = method.Module.Import(TypeMarshal.Methods.First(m => m.Name == "AllocHGlobal"));
var sb_get_capacity = method.Module.ImportReference(TypeStringBuilder.Methods.First(m => m.Name == "get_Capacity"));
var alloc_hglobal = method.Module.ImportReference(TypeMarshal.Methods.First(m => m.Name == "AllocHGlobal"));
// IntPtr ptr;
var variable_name = parameter.Name + " _sb_ptr";
body.Variables.Add(new VariableDefinition(variable_name, TypeIntPtr));
int index = body.Variables.Count - 1;
var variableDefinition = new VariableDefinition(TypeIntPtr);
body.Variables.Add(variableDefinition);
int stringBuilderPtrIndex = body.Variables.Count - 1;
GeneratedVariableIdentifier stringBuilderPtrVar = new GeneratedVariableIdentifier(body, variableDefinition, parameter.Name + "_sb_ptr");
// ptr = Marshal.AllocHGlobal(sb.Capacity + 1);
il.Emit(OpCodes.Callvirt, sb_get_capacity);
il.Emit(OpCodes.Call, alloc_hglobal);
il.Emit(OpCodes.Stloc, index);
il.Emit(OpCodes.Ldloc, index);
il.Emit(OpCodes.Stloc, stringBuilderPtrIndex);
il.Emit(OpCodes.Ldloc, stringBuilderPtrIndex);
// We'll emit the try-finally block in the epilogue implementation,
// because we haven't yet emitted all necessary instructions here.
return stringBuilderPtrVar;
}
static void EmitStringBuilderEpilogue(MethodDefinition wrapper, MethodDefinition native, ParameterDefinition parameter, MethodBody body, ILProcessor il)
static void EmitStringBuilderEpilogue(MethodDefinition wrapper, MethodDefinition native,
ParameterDefinition parameter, MethodBody body, ILProcessor il, GeneratedVariableIdentifier generatedPtrVar)
{
if (generatedPtrVar == null)
{
throw new ArgumentNullException(nameof(generatedPtrVar));
}
var p = parameter.ParameterType;
if (p.Name == "StringBuilder")
{
@ -591,29 +612,28 @@ namespace OpenTK.Rewrite
// }
// Make sure we have imported BindingsBase::MasrhalPtrToStringBuilder and Marshal::FreeHGlobal
var ptr_to_sb = wrapper.Module.Import(TypeBindingsBase.Methods.First(m => m.Name == "MarshalPtrToStringBuilder"));
var free_hglobal = wrapper.Module.Import(TypeMarshal.Methods.First(m => m.Name == "FreeHGlobal"));
var ptr_to_sb = wrapper.Module.ImportReference(TypeBindingsBase.Methods.First(m => m.Name == "MarshalPtrToStringBuilder"));
var free_hglobal = wrapper.Module.ImportReference(TypeMarshal.Methods.First(m => m.Name == "FreeHGlobal"));
var block = new ExceptionHandler(ExceptionHandlerType.Finally);
block.TryStart = body.Instructions[0];
var variable_name = parameter.Name + " _sb_ptr";
var v = body.Variables.First(m => m.Name == variable_name);
il.Emit(OpCodes.Ldloc, v.Index);
il.Emit(OpCodes.Ldloc, generatedPtrVar.Definition.Index);
il.Emit(OpCodes.Ldarg, parameter.Index);
il.Emit(OpCodes.Call, ptr_to_sb);
block.TryEnd = body.Instructions.Last();
block.HandlerStart = body.Instructions.Last();
il.Emit(OpCodes.Ldloc, v.Index);
il.Emit(OpCodes.Ldloc, generatedPtrVar.Definition.Index);
il.Emit(OpCodes.Call, free_hglobal);
block.HandlerEnd = body.Instructions.Last();
}
}
static void EmitStringParameter(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body, ILProcessor il)
static GeneratedVariableIdentifier EmitStringParameter(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body,
ILProcessor il)
{
var p = parameter.ParameterType;
@ -621,34 +641,37 @@ namespace OpenTK.Rewrite
// IntPtr ptr = MarshalStringToPtr(str);
// try { calli }
// finally { Marshal.FreeHGlobal(ptr); }
var marshal_str_to_ptr = wrapper.Module.Import(TypeBindingsBase.Methods.First(m => m.Name == "MarshalStringToPtr"));
var marshal_str_to_ptr = wrapper.Module.ImportReference(TypeBindingsBase.Methods.First(m => m.Name == "MarshalStringToPtr"));
// IntPtr ptr;
var variable_name = parameter.Name + "_string_ptr";
body.Variables.Add(new VariableDefinition(variable_name, TypeIntPtr));
int index = body.Variables.Count - 1;
var variableDefinition = new VariableDefinition(TypeIntPtr);
body.Variables.Add(variableDefinition);
int generatedPointerVarIndex = body.Variables.Count - 1;
GeneratedVariableIdentifier stringPtrVar = new GeneratedVariableIdentifier(body, variableDefinition, parameter.Name + "_string_ptr");
// ptr = Marshal.StringToHGlobalAnsi(str);
il.Emit(OpCodes.Call, marshal_str_to_ptr);
il.Emit(OpCodes.Stloc, index);
il.Emit(OpCodes.Ldloc, index);
il.Emit(OpCodes.Stloc, generatedPointerVarIndex);
il.Emit(OpCodes.Ldloc, generatedPointerVarIndex);
// The finally block will be emitted in the function epilogue
return stringPtrVar;
}
static void EmitStringEpilogue(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body, ILProcessor il)
static void EmitStringEpilogue(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body,
ILProcessor il, GeneratedVariableIdentifier generatedPtrVar)
{
var p = parameter.ParameterType;
var free = wrapper.Module.Import(TypeBindingsBase.Methods.First(m => m.Name == "FreeStringPtr"));
var free = wrapper.Module.ImportReference(TypeBindingsBase.Methods.First(m => m.Name == "FreeStringPtr"));
// FreeStringPtr(ptr)
var variable_name = parameter.Name + "_string_ptr";
var v = body.Variables.First(m => m.Name == variable_name);
il.Emit(OpCodes.Ldloc, v.Index);
il.Emit(OpCodes.Ldloc, generatedPtrVar.Definition.Index);
il.Emit(OpCodes.Call, free);
}
static void EmitStringArrayParameter(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body, ILProcessor il)
static GeneratedVariableIdentifier EmitStringArrayParameter(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body,
ILProcessor il)
{
var p = parameter.ParameterType;
@ -656,34 +679,42 @@ namespace OpenTK.Rewrite
// IntPtr ptr = MarshalStringArrayToPtr(strings);
// try { calli }
// finally { FreeStringArrayPtr(ptr); }
var marshal_str_array_to_ptr = wrapper.Module.Import(TypeBindingsBase.Methods.First(m => m.Name == "MarshalStringArrayToPtr"));
var marshal_str_array_to_ptr = wrapper.Module.ImportReference(TypeBindingsBase.Methods.First(m => m.Name == "MarshalStringArrayToPtr"));
// IntPtr ptr;
var variable_name = parameter.Name + "_string_array_ptr";
body.Variables.Add(new VariableDefinition(variable_name, TypeIntPtr));
int index = body.Variables.Count - 1;
var variableDefinition = new VariableDefinition(TypeIntPtr);
body.Variables.Add(variableDefinition);
int generatedPointerVarIndex = body.Variables.Count - 1;
GeneratedVariableIdentifier stringArrayPtrVar = new GeneratedVariableIdentifier(body, variableDefinition, parameter.Name + "_string_array_ptr");
// ptr = MarshalStringArrayToPtr(strings);
il.Emit(OpCodes.Call, marshal_str_array_to_ptr);
il.Emit(OpCodes.Stloc, index);
il.Emit(OpCodes.Ldloc, index);
il.Emit(OpCodes.Stloc, generatedPointerVarIndex);
il.Emit(OpCodes.Ldloc, generatedPointerVarIndex);
// The finally block will be emitted in the function epilogue
return stringArrayPtrVar;
}
static void EmitStringArrayEpilogue(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body, ILProcessor il)
static void EmitStringArrayEpilogue(MethodDefinition wrapper, ParameterDefinition parameter, MethodBody body,
ILProcessor il, GeneratedVariableIdentifier generatedPtrVar)
{
if (generatedPtrVar == null)
{
throw new ArgumentNullException(nameof(generatedPtrVar));
}
// Note: only works for string vectors (1d arrays).
// We do not (and will probably never) support 2d or higher string arrays
var p = parameter.ParameterType;
var free = wrapper.Module.Import(TypeBindingsBase.Methods.First(m => m.Name == "FreeStringArrayPtr"));
var free = wrapper.Module.ImportReference(TypeBindingsBase.Methods.First(m => m.Name == "FreeStringArrayPtr"));
// FreeStringArrayPtr(string_array_ptr, string_array.Length)
var variable_name = parameter.Name + "_string_array_ptr";
var v = body.Variables.First(m => m.Name == variable_name);
// load string_array_ptr
il.Emit(OpCodes.Ldloc, v.Index);
il.Emit(OpCodes.Ldloc, generatedPtrVar.Definition.Index);
// load string_array.Length
il.Emit(OpCodes.Ldarg, parameter.Index);
@ -694,7 +725,7 @@ namespace OpenTK.Rewrite
il.Emit(OpCodes.Call, free);
}
static void EmitConvenienceWrapper(MethodDefinition wrapper,
static List<GeneratedVariableIdentifier> EmitConvenienceWrapper(MethodDefinition wrapper,
MethodDefinition native, int difference, MethodBody body, ILProcessor il)
{
if (wrapper.Parameters.Count > 2)
@ -703,6 +734,8 @@ namespace OpenTK.Rewrite
throw new NotImplementedException();
}
List<GeneratedVariableIdentifier> generatedVariables = new List<GeneratedVariableIdentifier>();
if (wrapper.ReturnType.Name != "Void")
{
if (difference == 2)
@ -729,7 +762,8 @@ namespace OpenTK.Rewrite
// return result;
// }
body.Variables.Add(new VariableDefinition(wrapper.ReturnType));
EmitParameters(wrapper, native, body, il);
generatedVariables = EmitParameters(wrapper, native, body, il);
il.Emit(OpCodes.Ldloca, body.Variables.Count - 1);
}
else
@ -755,15 +789,17 @@ namespace OpenTK.Rewrite
Console.Error.WriteLine("Unknown wrapper type for ({0})", native.Name);
}
}
return generatedVariables;
}
static int EmitParameters(MethodDefinition method, MethodDefinition native, MethodBody body, ILProcessor il)
static List<GeneratedVariableIdentifier> EmitParameters(MethodDefinition method, MethodDefinition native, MethodBody body, ILProcessor il)
{
int i;
for (i = 0; i < method.Parameters.Count; i++)
List<GeneratedVariableIdentifier> generatedVariables = new List<GeneratedVariableIdentifier>();
for (int i = 0; i < method.Parameters.Count; i++)
{
var parameter = method.Parameters[i];
var p = method.Module.Import(method.Parameters[i].ParameterType);
var p = method.Module.ImportReference(method.Parameters[i].ParameterType);
il.Emit(OpCodes.Ldarg, i);
if (p.Name.Contains("Int32") && native.Parameters[i].ParameterType.Name.Contains("IntPtr"))
@ -774,11 +810,11 @@ namespace OpenTK.Rewrite
}
else if (p.Name == "StringBuilder")
{
EmitStringBuilderParameter(method, parameter, body, il);
generatedVariables.Add(EmitStringBuilderParameter(method, parameter, body, il));
}
else if (p.Name == "String" && !p.IsArray)
{
EmitStringParameter(method, parameter, body, il);
generatedVariables.Add(EmitStringParameter(method, parameter, body, il));
}
else if (p.IsByReference)
{
@ -790,7 +826,7 @@ namespace OpenTK.Rewrite
}
else if (p.IsArray)
{
if (p.Name != method.Module.Import(typeof(string[])).Name)
if (p.Name != method.Module.ImportReference(typeof(string[])).Name)
{
// .Net treats 1d arrays differently than higher rank arrays.
// 1d arrays are directly supported by instructions such as ldlen and ldelema.
@ -834,7 +870,7 @@ namespace OpenTK.Rewrite
}
else
{
var get_length = method.Module.Import(
var get_length = method.Module.ImportReference(
mscorlib.MainModule.GetType("System.Array").Methods.First(m => m.Name == "get_Length"));
il.Emit(OpCodes.Callvirt, get_length);
}
@ -880,11 +916,12 @@ namespace OpenTK.Rewrite
}
else
{
EmitStringArrayParameter(method, parameter, body, il);
generatedVariables.Add(EmitStringArrayParameter(method, parameter, body, il));
}
}
}
return i;
return generatedVariables;
}
static void EmitEntryPoint(FieldDefinition entry_points, ILProcessor il, int slot)