summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoundinya Veluri <kouvel@microsoft.com>2015-10-06 01:38:00 -0700
committerKoundinya Veluri <kouvel@microsoft.com>2015-10-07 04:03:53 -0700
commitdba31572605bc370b3b9eee403b3d2bb56cc4b56 (patch)
tree51aad0c3fb709994b8349ef9022f2a8d06faede2
parentf7461fed79d952532146891de7c2746758fa9a88 (diff)
downloadcoreclr-dba31572605bc370b3b9eee403b3d2bb56cc4b56.tar.gz
coreclr-dba31572605bc370b3b9eee403b3d2bb56cc4b56.tar.bz2
coreclr-dba31572605bc370b3b9eee403b3d2bb56cc4b56.zip
Add unit test for loading native library from host-provided native search paths
Also used and added to existing macros for separator chars and removed the new members I had added to the Path class. Related to #1680
-rw-r--r--src/inc/clr/fs/path.h30
-rw-r--r--src/inc/palclr.h2
-rw-r--r--src/pal/inc/rt/palrt.h2
-rw-r--r--src/vm/appdomainnative.cpp6
-rwxr-xr-xtests/runtest.sh2
-rw-r--r--tests/src/Loader/NativeLibs/CMakeLists.txt9
-rw-r--r--tests/src/Loader/NativeLibs/FromNativePaths.cs119
-rw-r--r--tests/src/Loader/NativeLibs/FromNativePaths.csproj24
-rw-r--r--tests/src/Loader/NativeLibs/FromNativePaths_lib.cpp7
-rw-r--r--tests/src/Loader/NativeLibs/FromNativePaths_lib.def2
-rw-r--r--tests/src/Loader/NativeLibs/project.json13
-rw-r--r--tests/src/Loader/NativeLibs/project.lock.json850
12 files changed, 1037 insertions, 29 deletions
diff --git a/src/inc/clr/fs/path.h b/src/inc/clr/fs/path.h
index c8bb01e329..a1b47dd295 100644
--- a/src/inc/clr/fs/path.h
+++ b/src/inc/clr/fs/path.h
@@ -36,25 +36,6 @@ namespace clr
class Path
{
public:
-#if !PLATFORM_UNIX
- static const CHAR DirectorySeparatorChar = '\\';
-#else // PLATFORM_UNIX
- static const CHAR DirectorySeparatorChar = '/';
-#endif
-
-#if !PLATFORM_UNIX
- static const CHAR PathSeparatorChar = ';';
-#else // PLATFORM_UNIX
- static const CHAR PathSeparatorChar = ':';
-#endif // !PLATFORM_UNIX
-
-#if !PLATFORM_UNIX
- static const CHAR VolumeSeparatorChar = ':';
-#else // PLATFORM_UNIX
- static const CHAR VolumeSeparatorChar = '/';
-#endif // !PLATFORM_UNIX
-
- public:
//-----------------------------------------------------------------------------------------
static inline bool
Exists(
@@ -82,7 +63,7 @@ namespace clr
// Similar to System.IO.Path.IsRelative()
#if PLATFORM_UNIX
- if(wzPath[0] == VolumeSeparatorChar)
+ if(wzPath[0] == VOLUME_SEPARATOR_CHAR_W)
{
return false;
}
@@ -92,8 +73,8 @@ namespace clr
// - "\..." - these paths are relative, as they depend on the current drive
// - "C:..." and not "C:\..." - these paths are relative, as they depend on the current directory for drive C
if (wzPath[0] != W('\0') &&
- wzPath[1] == VolumeSeparatorChar &&
- wzPath[2] == DirectorySeparatorChar &&
+ wzPath[1] == VOLUME_SEPARATOR_CHAR_W &&
+ wzPath[2] == DIRECTORY_SEPARATOR_CHAR_W &&
(
(wzPath[0] >= W('A') && wzPath[0] <= W('Z')) ||
(wzPath[0] >= W('a') && wzPath[0] <= W('z'))
@@ -101,7 +82,7 @@ namespace clr
{
return false;
}
- if(wzPath[0] == DirectorySeparatorChar && wzPath[1] == DirectorySeparatorChar)
+ if (wzPath[0] == DIRECTORY_SEPARATOR_CHAR_W && wzPath[1] == DIRECTORY_SEPARATOR_CHAR_W)
{
return false;
}
@@ -129,8 +110,7 @@ namespace clr
size_t cchBuf = *pcchBuffer;
IfFailRet(StringCchCopyExW(wzBuf, cchBuf, wzPathLeft, &wzBuf, &cchBuf, STRSAFE_NULL_ON_FAILURE));
- const WCHAR directorySeparatorWString[] = {DirectorySeparatorChar, W('\0')};
- IfFailRet(StringCchCatExW(wzBuf, cchBuf, wzBuf[-1] == DirectorySeparatorChar ? W("") : directorySeparatorWString, &wzBuf, &cchBuf, STRSAFE_NULL_ON_FAILURE));
+ IfFailRet(StringCchCatExW(wzBuf, cchBuf, wzBuf[-1] == DIRECTORY_SEPARATOR_CHAR_W ? W("") : DIRECTORY_SEPARATOR_STR_W, &wzBuf, &cchBuf, STRSAFE_NULL_ON_FAILURE));
IfFailRet(StringCchCatExW(wzBuf, cchBuf, wzPathRight, &wzBuf, &cchBuf, STRSAFE_NULL_ON_FAILURE));
return S_OK;
diff --git a/src/inc/palclr.h b/src/inc/palclr.h
index 26d882d08f..e005c29208 100644
--- a/src/inc/palclr.h
+++ b/src/inc/palclr.h
@@ -93,6 +93,8 @@
#define PATH_SEPARATOR_CHAR_W W(';')
#define PATH_SEPARATOR_STR_W W(";")
+#define VOLUME_SEPARATOR_CHAR_W W(':')
+
// PAL Macros
// Not all compilers support fully anonymous aggregate types, so the
// PAL provides names for those types. To allow existing definitions of
diff --git a/src/pal/inc/rt/palrt.h b/src/pal/inc/rt/palrt.h
index b969047ce3..2c9bf146d4 100644
--- a/src/pal/inc/rt/palrt.h
+++ b/src/pal/inc/rt/palrt.h
@@ -1365,12 +1365,14 @@ typedef VOID (__stdcall *WAITORTIMERCALLBACK)(PVOID, BOOLEAN);
#define DIRECTORY_SEPARATOR_STR_W W("/")
#define PATH_SEPARATOR_CHAR_W W(':')
#define PATH_SEPARATOR_STR_W W(":")
+#define VOLUME_SEPARATOR_CHAR_W W('/')
#else // PLATFORM_UNIX
#define DIRECTORY_SEPARATOR_CHAR_A '\\'
#define DIRECTORY_SEPARATOR_CHAR_W W('\\')
#define DIRECTORY_SEPARATOR_STR_W W("\\")
#define PATH_SEPARATOR_CHAR_W W(';')
#define PATH_SEPARATOR_STR_W W(";")
+#define VOLUME_SEPARATOR_CHAR_W W(':')
#endif // PLATFORM_UNIX
#ifndef IMAGE_IMPORT_DESC_FIELD
diff --git a/src/vm/appdomainnative.cpp b/src/vm/appdomainnative.cpp
index 4aa6ef42f6..6dd2ffd6f7 100644
--- a/src/vm/appdomainnative.cpp
+++ b/src/vm/appdomainnative.cpp
@@ -1580,7 +1580,7 @@ void QCALLTYPE AppDomainNative::SetNativeDllSearchDirectories(__in_z LPCWSTR wsz
while (itr != end)
{
start = itr;
- BOOL found = sDirectories.Find(itr, Path::PathSeparatorChar);
+ BOOL found = sDirectories.Find(itr, PATH_SEPARATOR_CHAR_W);
if (!found)
{
itr = end;
@@ -1597,9 +1597,9 @@ void QCALLTYPE AppDomainNative::SetNativeDllSearchDirectories(__in_z LPCWSTR wsz
if (len > 0)
{
- if (qualifiedPath[len - 1] != Path::DirectorySeparatorChar)
+ if (qualifiedPath[len - 1] != DIRECTORY_SEPARATOR_CHAR_W)
{
- qualifiedPath.Append(Path::DirectorySeparatorChar);
+ qualifiedPath.Append(DIRECTORY_SEPARATOR_CHAR_W);
}
NewHolder<SString> stringHolder (new SString(qualifiedPath));
diff --git a/tests/runtest.sh b/tests/runtest.sh
index 6333873266..4f5970bfd5 100755
--- a/tests/runtest.sh
+++ b/tests/runtest.sh
@@ -611,7 +611,6 @@ if [ ! -d "$testRootDir" ]; then
echo "Directory specified by --testRootDir does not exist: $testRootDir"
exit 1
fi
-cd "$testRootDir"
xunit_output_begin
create_core_overlay
@@ -619,6 +618,7 @@ copy_test_native_bin_to_test_root
load_unsupported_tests
load_failing_tests
+cd "$testRootDir"
if [ -z "$testDirectories" ]
then
# No test directories were specified, so run everything in the current
diff --git a/tests/src/Loader/NativeLibs/CMakeLists.txt b/tests/src/Loader/NativeLibs/CMakeLists.txt
new file mode 100644
index 0000000000..125be8f8d8
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/CMakeLists.txt
@@ -0,0 +1,9 @@
+cmake_minimum_required(VERSION 2.6)
+project(FromNativePaths_lib)
+
+set(CMAKE_SHARED_LIBRARY_PREFIX "")
+
+set(SOURCES FromNativePaths_lib.cpp FromNativePaths_lib.def)
+add_library(FromNativePaths_lib SHARED ${SOURCES})
+
+install(TARGETS FromNativePaths_lib DESTINATION Loader/NativeLibs)
diff --git a/tests/src/Loader/NativeLibs/FromNativePaths.cs b/tests/src/Loader/NativeLibs/FromNativePaths.cs
new file mode 100644
index 0000000000..5739a9861a
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/FromNativePaths.cs
@@ -0,0 +1,119 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Runtime.InteropServices;
+
+public class FromNativePaths
+{
+ private const string NativeLibraryNameWithoutExtension = "FromNativePaths_lib";
+
+ // See src/pal/src/include/pal/module.h
+ private static readonly string[] NativeLibraryExtensions = new string[] { ".dll", ".so", ".dylib", ".a", ".sl" };
+
+ [DllImport(NativeLibraryNameWithoutExtension)]
+ private static extern bool NativeFunc();
+
+ private static bool LoadNativeLibrary()
+ {
+ // Isolate the call to the native function in a separate function so that we can catch exceptions
+ return NativeFunc();
+ }
+
+ private static bool Test()
+ {
+ // The loader checks the folder where the assembly that is loading the native library resides. The host-provided native
+ // search paths for corerun include the folder where corerun resides. Move the native library there to verify that it
+ // can be loaded from there.
+
+ var coreRoot = Environment.GetEnvironmentVariable("CORE_ROOT");
+ if (string.IsNullOrWhiteSpace(coreRoot))
+ {
+ Console.WriteLine("FromNativePaths failed: CORE_ROOT is not defined.");
+ return false;
+ }
+ if (!Directory.Exists(coreRoot))
+ {
+ Console.WriteLine(
+ "FromNativePaths failed: Directory specified by CORE_ROOT does not exist: {0}",
+ coreRoot);
+ return false;
+ }
+
+ var movedLibraryDestinationPaths = new List<string>();
+ var moveLibraryFailed = false;
+ foreach (var nativeLibraryExtension in NativeLibraryExtensions)
+ {
+ var nativeLibraryName = NativeLibraryNameWithoutExtension + nativeLibraryExtension;
+ if (!File.Exists(nativeLibraryName))
+ continue;
+
+ var destinationPath = Path.Combine(coreRoot, nativeLibraryName);
+ try
+ {
+ var destinationFileInfo = new FileInfo(destinationPath);
+ if (destinationFileInfo.Exists)
+ {
+ destinationFileInfo.IsReadOnly = false;
+ destinationFileInfo.Delete();
+ }
+ File.Move(nativeLibraryName, destinationPath);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(
+ "FromNativePaths failed: Failed to move native library to CORE_ROOT: {0}",
+ ex.Message);
+ moveLibraryFailed = true;
+ break;
+ }
+
+ movedLibraryDestinationPaths.Add(destinationPath);
+ }
+
+ try
+ {
+ if (moveLibraryFailed)
+ return false;
+
+ // Try to load the native library
+ try
+ {
+ if (LoadNativeLibrary())
+ return true;
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("FromNativePaths failed: Failed to load the native library: {0}", ex.Message);
+ return false;
+ }
+
+ Console.WriteLine("FromNativePaths failed: Unexpected result from native function call.");
+ return false;
+ }
+ finally
+ {
+ // Copy the native library back to the test folder. Don't move it, since it is loaded and the move may fail.
+ foreach (var movedLibraryDestinationPath in movedLibraryDestinationPaths)
+ {
+ try
+ {
+ File.Copy(movedLibraryDestinationPath, Path.GetFileName(movedLibraryDestinationPath));
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(
+ "FromNativePaths failed: Failed to move the native library back to the test folder: {0}",
+ ex.Message);
+ }
+ }
+ }
+ }
+
+ public static int Main()
+ {
+ return Test() ? 100 : 101;
+ }
+}
diff --git a/tests/src/Loader/NativeLibs/FromNativePaths.csproj b/tests/src/Loader/NativeLibs/FromNativePaths.csproj
new file mode 100644
index 0000000000..163b1cde90
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/FromNativePaths.csproj
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <AssemblyName>FromNativePaths</AssemblyName>
+ <ProjectGuid>{649A239B-AB4B-4E20-BDCA-3BA736E8B790}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Include="FromNativePaths.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="project.json" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project> \ No newline at end of file
diff --git a/tests/src/Loader/NativeLibs/FromNativePaths_lib.cpp b/tests/src/Loader/NativeLibs/FromNativePaths_lib.cpp
new file mode 100644
index 0000000000..d1f540597a
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/FromNativePaths_lib.cpp
@@ -0,0 +1,7 @@
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+extern "C" bool NativeFunc()
+{
+ return true;
+}
diff --git a/tests/src/Loader/NativeLibs/FromNativePaths_lib.def b/tests/src/Loader/NativeLibs/FromNativePaths_lib.def
new file mode 100644
index 0000000000..d873fbd2a9
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/FromNativePaths_lib.def
@@ -0,0 +1,2 @@
+EXPORTS
+ NativeFunc \ No newline at end of file
diff --git a/tests/src/Loader/NativeLibs/project.json b/tests/src/Loader/NativeLibs/project.json
new file mode 100644
index 0000000000..e29434937e
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/project.json
@@ -0,0 +1,13 @@
+{
+ "dependencies": {
+ "System.Collections": "4.0.10-beta-*",
+ "System.Console": "4.0.0-beta-*",
+ "System.IO": "4.0.10-beta-*",
+ "System.IO.FileSystem": "4.0.0-beta-*",
+ "System.Runtime.Extensions": "4.0.10-beta-*",
+ "System.Runtime.InteropServices": "4.0.20-beta-*"
+ },
+ "frameworks": {
+ "dnxcore50": {}
+ }
+} \ No newline at end of file
diff --git a/tests/src/Loader/NativeLibs/project.lock.json b/tests/src/Loader/NativeLibs/project.lock.json
new file mode 100644
index 0000000000..a46a767d51
--- /dev/null
+++ b/tests/src/Loader/NativeLibs/project.lock.json
@@ -0,0 +1,850 @@
+{
+ "locked": false,
+ "version": -9996,
+ "targets": {
+ "DNXCore,Version=v5.0": {
+ "System.Collections/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Collections.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Collections.dll": {}
+ }
+ },
+ "System.Console/4.0.0-beta-23406": {
+ "dependencies": {
+ "System.Runtime": "4.0.0",
+ "System.IO": "4.0.0"
+ },
+ "compile": {
+ "ref/dotnet/System.Console.dll": {}
+ }
+ },
+ "System.Globalization/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Globalization.dll": {}
+ }
+ },
+ "System.IO/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-23127",
+ "System.Text.Encoding": "4.0.0-beta-23127",
+ "System.Threading.Tasks": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.IO.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.IO.dll": {}
+ }
+ },
+ "System.IO.FileSystem/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-23127",
+ "System.Runtime.InteropServices": "4.0.20-beta-23127",
+ "System.Resources.ResourceManager": "4.0.0-beta-23127",
+ "System.Runtime.Handles": "4.0.0-beta-23127",
+ "System.Threading.Overlapped": "4.0.0-beta-23127",
+ "System.IO.FileSystem.Primitives": "4.0.0-beta-23127",
+ "System.Text.Encoding": "4.0.10-beta-23127",
+ "System.IO": "4.0.10-beta-23127",
+ "System.Collections": "4.0.10-beta-23127",
+ "System.Threading.Tasks": "4.0.10-beta-23127",
+ "System.Runtime.Extensions": "4.0.10-beta-23127",
+ "System.Text.Encoding.Extensions": "4.0.10-beta-23127",
+ "System.Threading": "4.0.10-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.IO.FileSystem.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.IO.FileSystem.dll": {}
+ }
+ },
+ "System.IO.FileSystem.Primitives/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.IO.FileSystem.Primitives.dll": {}
+ },
+ "runtime": {
+ "lib/dotnet/System.IO.FileSystem.Primitives.dll": {}
+ }
+ },
+ "System.Private.Uri/4.0.0-beta-23127": {
+ "runtime": {
+ "lib/DNXCore50/System.Private.Uri.dll": {}
+ }
+ },
+ "System.Reflection/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.IO": "4.0.0-beta-23127",
+ "System.Reflection.Primitives": "4.0.0-beta-23127",
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Reflection.dll": {}
+ }
+ },
+ "System.Reflection.Primitives/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Reflection.Primitives.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Reflection.Primitives.dll": {}
+ }
+ },
+ "System.Resources.ResourceManager/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127",
+ "System.Reflection": "4.0.0-beta-23127",
+ "System.Globalization": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Resources.ResourceManager.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Resources.ResourceManager.dll": {}
+ }
+ },
+ "System.Runtime/4.0.20-beta-23127": {
+ "dependencies": {
+ "System.Private.Uri": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Runtime.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Runtime.dll": {}
+ }
+ },
+ "System.Runtime.Extensions/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.20-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Runtime.Extensions.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Runtime.Extensions.dll": {}
+ }
+ },
+ "System.Runtime.Handles/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Runtime.Handles.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Runtime.Handles.dll": {}
+ }
+ },
+ "System.Runtime.InteropServices/4.0.20-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127",
+ "System.Reflection": "4.0.0-beta-23127",
+ "System.Reflection.Primitives": "4.0.0-beta-23127",
+ "System.Runtime.Handles": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Runtime.InteropServices.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Runtime.InteropServices.dll": {}
+ }
+ },
+ "System.Text.Encoding/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Text.Encoding.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Text.Encoding.dll": {}
+ }
+ },
+ "System.Text.Encoding.Extensions/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127",
+ "System.Text.Encoding": "4.0.10-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Text.Encoding.Extensions.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Text.Encoding.Extensions.dll": {}
+ }
+ },
+ "System.Threading/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127",
+ "System.Threading.Tasks": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Threading.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Threading.dll": {}
+ }
+ },
+ "System.Threading.Overlapped/4.0.0-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127",
+ "System.Runtime.Handles": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Threading.Overlapped.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Threading.Overlapped.dll": {}
+ }
+ },
+ "System.Threading.Tasks/4.0.10-beta-23127": {
+ "dependencies": {
+ "System.Runtime": "4.0.0-beta-23127"
+ },
+ "compile": {
+ "ref/dotnet/System.Threading.Tasks.dll": {}
+ },
+ "runtime": {
+ "lib/DNXCore50/System.Threading.Tasks.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "System.Collections/4.0.10-beta-23127": {
+ "serviceable": true,
+ "sha512": "1XSlnhJpGCiRzmHn68jcX6yKPmJEdlUd1iE9KBTOR6posRM9xbFIgVMz8YxNSm76iFi5ukP8PVgs1ks0gWdkZQ==",
+ "files": [
+ "System.Collections.4.0.10-beta-23127.nupkg",
+ "System.Collections.4.0.10-beta-23127.nupkg.sha512",
+ "System.Collections.nuspec",
+ "lib/DNXCore50/System.Collections.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Collections.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Collections.dll",
+ "ref/dotnet/System.Collections.xml",
+ "ref/dotnet/de/System.Collections.xml",
+ "ref/dotnet/es/System.Collections.xml",
+ "ref/dotnet/fr/System.Collections.xml",
+ "ref/dotnet/it/System.Collections.xml",
+ "ref/dotnet/ja/System.Collections.xml",
+ "ref/dotnet/ko/System.Collections.xml",
+ "ref/dotnet/ru/System.Collections.xml",
+ "ref/dotnet/zh-hans/System.Collections.xml",
+ "ref/dotnet/zh-hant/System.Collections.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Collections.dll"
+ ]
+ },
+ "System.Console/4.0.0-beta-23406": {
+ "serviceable": true,
+ "sha512": "gKzQ/CkAP8fbyQ8+Vxf3lvW4+3qbZ8QpqwTWhRXImQ9QteXgI+q956weRMS1A8fN9BUR1sNnBDtS1sP7cts9fA==",
+ "files": [
+ "runtime.json",
+ "System.Console.4.0.0-beta-23406.nupkg",
+ "System.Console.4.0.0-beta-23406.nupkg.sha512",
+ "System.Console.nuspec",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.Console.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Console.dll",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.Console.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._"
+ ]
+ },
+ "System.Globalization/4.0.0-beta-23127": {
+ "sha512": "aeIAximdNakmhRV4TtKHUnC1UwR89D7KDSw5CdKvRiMqj/kUFJ16TqT7VKSPaPck3CaE/Mxre5JG+u468UN16A==",
+ "files": [
+ "License.rtf",
+ "System.Globalization.4.0.0-beta-23127.nupkg",
+ "System.Globalization.4.0.0-beta-23127.nupkg.sha512",
+ "System.Globalization.nuspec",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Globalization.dll",
+ "ref/dotnet/System.Globalization.xml",
+ "ref/dotnet/de/System.Globalization.xml",
+ "ref/dotnet/es/System.Globalization.xml",
+ "ref/dotnet/fr/System.Globalization.xml",
+ "ref/dotnet/it/System.Globalization.xml",
+ "ref/dotnet/ja/System.Globalization.xml",
+ "ref/dotnet/ko/System.Globalization.xml",
+ "ref/dotnet/ru/System.Globalization.xml",
+ "ref/dotnet/zh-hans/System.Globalization.xml",
+ "ref/dotnet/zh-hant/System.Globalization.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Globalization.dll",
+ "ref/netcore50/System.Globalization.xml",
+ "ref/netcore50/de/System.Globalization.xml",
+ "ref/netcore50/es/System.Globalization.xml",
+ "ref/netcore50/fr/System.Globalization.xml",
+ "ref/netcore50/it/System.Globalization.xml",
+ "ref/netcore50/ja/System.Globalization.xml",
+ "ref/netcore50/ko/System.Globalization.xml",
+ "ref/netcore50/ru/System.Globalization.xml",
+ "ref/netcore50/zh-hans/System.Globalization.xml",
+ "ref/netcore50/zh-hant/System.Globalization.xml",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._"
+ ]
+ },
+ "System.IO/4.0.10-beta-23127": {
+ "serviceable": true,
+ "sha512": "YOBBR0IcbiCRKyv+WDz1ofHSj8m+uGeBA3NJtZTcKMQxo3kJaB15+LIlh3qprRz3WxhQ08uPy7P/orbQ7vBHkQ==",
+ "files": [
+ "System.IO.4.0.10-beta-23127.nupkg",
+ "System.IO.4.0.10-beta-23127.nupkg.sha512",
+ "System.IO.nuspec",
+ "lib/DNXCore50/System.IO.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.IO.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.IO.dll",
+ "ref/dotnet/System.IO.xml",
+ "ref/dotnet/de/System.IO.xml",
+ "ref/dotnet/es/System.IO.xml",
+ "ref/dotnet/fr/System.IO.xml",
+ "ref/dotnet/it/System.IO.xml",
+ "ref/dotnet/ja/System.IO.xml",
+ "ref/dotnet/ko/System.IO.xml",
+ "ref/dotnet/ru/System.IO.xml",
+ "ref/dotnet/zh-hans/System.IO.xml",
+ "ref/dotnet/zh-hant/System.IO.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.IO.dll"
+ ]
+ },
+ "System.IO.FileSystem/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "kqCi4we0nY7GWnW0qbjALOX7BPQNaOpsDNbBDDoX2YSp+cEbqWPpcutqHNLeD7YjsZ/ZgrDvNJpAi2eXYeCtRQ==",
+ "files": [
+ "System.IO.FileSystem.4.0.0-beta-23127.nupkg",
+ "System.IO.FileSystem.4.0.0-beta-23127.nupkg.sha512",
+ "System.IO.FileSystem.nuspec",
+ "lib/DNXCore50/System.IO.FileSystem.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.IO.FileSystem.dll",
+ "lib/netcore50/System.IO.FileSystem.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.IO.FileSystem.dll",
+ "ref/dotnet/System.IO.FileSystem.xml",
+ "ref/dotnet/de/System.IO.FileSystem.xml",
+ "ref/dotnet/es/System.IO.FileSystem.xml",
+ "ref/dotnet/fr/System.IO.FileSystem.xml",
+ "ref/dotnet/it/System.IO.FileSystem.xml",
+ "ref/dotnet/ja/System.IO.FileSystem.xml",
+ "ref/dotnet/ko/System.IO.FileSystem.xml",
+ "ref/dotnet/ru/System.IO.FileSystem.xml",
+ "ref/dotnet/zh-hans/System.IO.FileSystem.xml",
+ "ref/dotnet/zh-hant/System.IO.FileSystem.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.IO.FileSystem.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._"
+ ]
+ },
+ "System.IO.FileSystem.Primitives/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "xyAAsqf/198kaCGfaL5KLnVCdkP877b2ohtQPVS5ilkhZ0pkjZ3Uy3fwGmGXVseBI9m8lpO1KDb3OG+cQRhRiw==",
+ "files": [
+ "System.IO.FileSystem.Primitives.4.0.0-beta-23127.nupkg",
+ "System.IO.FileSystem.Primitives.4.0.0-beta-23127.nupkg.sha512",
+ "System.IO.FileSystem.Primitives.nuspec",
+ "lib/dotnet/System.IO.FileSystem.Primitives.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/System.IO.FileSystem.Primitives.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.IO.FileSystem.Primitives.dll",
+ "ref/dotnet/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/de/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/es/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/fr/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/it/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/ja/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/ko/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/ru/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/zh-hans/System.IO.FileSystem.Primitives.xml",
+ "ref/dotnet/zh-hant/System.IO.FileSystem.Primitives.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/System.IO.FileSystem.Primitives.dll",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._"
+ ]
+ },
+ "System.Private.Uri/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "KT9JGnTYRf51pwPluZtpewmdBPiROzemamLmpzgzl3Pu3Y0vmH2CBLZktngD4I4YPNFO6ieCupeM0X3R1u26kA==",
+ "files": [
+ "System.Private.Uri.4.0.0-beta-23127.nupkg",
+ "System.Private.Uri.4.0.0-beta-23127.nupkg.sha512",
+ "System.Private.Uri.nuspec",
+ "lib/DNXCore50/System.Private.Uri.dll",
+ "lib/netcore50/System.Private.Uri.dll",
+ "ref/dnxcore50/_._",
+ "ref/netcore50/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll"
+ ]
+ },
+ "System.Reflection/4.0.0-beta-23127": {
+ "sha512": "C2H07xfQjIbtyFuD5T/g0QYc8sE0rhq3lNpL/LUmlQ7jS8xTm2hxTOvYqyPbmf4pYtBRQ3fS7/8mwRexPdN1wA==",
+ "files": [
+ "License.rtf",
+ "System.Reflection.4.0.0-beta-23127.nupkg",
+ "System.Reflection.4.0.0-beta-23127.nupkg.sha512",
+ "System.Reflection.nuspec",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Reflection.dll",
+ "ref/dotnet/System.Reflection.xml",
+ "ref/dotnet/de/System.Reflection.xml",
+ "ref/dotnet/es/System.Reflection.xml",
+ "ref/dotnet/fr/System.Reflection.xml",
+ "ref/dotnet/it/System.Reflection.xml",
+ "ref/dotnet/ja/System.Reflection.xml",
+ "ref/dotnet/ko/System.Reflection.xml",
+ "ref/dotnet/ru/System.Reflection.xml",
+ "ref/dotnet/zh-hans/System.Reflection.xml",
+ "ref/dotnet/zh-hant/System.Reflection.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.xml",
+ "ref/netcore50/de/System.Reflection.xml",
+ "ref/netcore50/es/System.Reflection.xml",
+ "ref/netcore50/fr/System.Reflection.xml",
+ "ref/netcore50/it/System.Reflection.xml",
+ "ref/netcore50/ja/System.Reflection.xml",
+ "ref/netcore50/ko/System.Reflection.xml",
+ "ref/netcore50/ru/System.Reflection.xml",
+ "ref/netcore50/zh-hans/System.Reflection.xml",
+ "ref/netcore50/zh-hant/System.Reflection.xml",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._"
+ ]
+ },
+ "System.Reflection.Primitives/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "qUjIaT8GBhxh5pyY1xhQd3/Rn5CJMu023GGNWXObr6/I/lX9LWpJD+UJAsPcLMEXOFq3QaKk6+giNjaqIdcf7Q==",
+ "files": [
+ "System.Reflection.Primitives.4.0.0-beta-23127.nupkg",
+ "System.Reflection.Primitives.4.0.0-beta-23127.nupkg.sha512",
+ "System.Reflection.Primitives.nuspec",
+ "lib/DNXCore50/System.Reflection.Primitives.dll",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Primitives.dll",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "ref/dotnet/System.Reflection.Primitives.dll",
+ "ref/dotnet/System.Reflection.Primitives.xml",
+ "ref/dotnet/de/System.Reflection.Primitives.xml",
+ "ref/dotnet/es/System.Reflection.Primitives.xml",
+ "ref/dotnet/fr/System.Reflection.Primitives.xml",
+ "ref/dotnet/it/System.Reflection.Primitives.xml",
+ "ref/dotnet/ja/System.Reflection.Primitives.xml",
+ "ref/dotnet/ko/System.Reflection.Primitives.xml",
+ "ref/dotnet/ru/System.Reflection.Primitives.xml",
+ "ref/dotnet/zh-hans/System.Reflection.Primitives.xml",
+ "ref/dotnet/zh-hant/System.Reflection.Primitives.xml",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.Primitives.dll",
+ "ref/netcore50/System.Reflection.Primitives.xml",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll"
+ ]
+ },
+ "System.Resources.ResourceManager/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "+stu9oGQvmjeFJfhg4zRf/D0jNGa2L7MIkGz3ik70loEFHLE3OrOXFt3T+3eG37Z6md2KCWKe+85ct6VDaEtWA==",
+ "files": [
+ "System.Resources.ResourceManager.4.0.0-beta-23127.nupkg",
+ "System.Resources.ResourceManager.4.0.0-beta-23127.nupkg.sha512",
+ "System.Resources.ResourceManager.nuspec",
+ "lib/DNXCore50/System.Resources.ResourceManager.dll",
+ "lib/net45/_._",
+ "lib/netcore50/System.Resources.ResourceManager.dll",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "ref/dotnet/System.Resources.ResourceManager.dll",
+ "ref/dotnet/System.Resources.ResourceManager.xml",
+ "ref/dotnet/de/System.Resources.ResourceManager.xml",
+ "ref/dotnet/es/System.Resources.ResourceManager.xml",
+ "ref/dotnet/fr/System.Resources.ResourceManager.xml",
+ "ref/dotnet/it/System.Resources.ResourceManager.xml",
+ "ref/dotnet/ja/System.Resources.ResourceManager.xml",
+ "ref/dotnet/ko/System.Resources.ResourceManager.xml",
+ "ref/dotnet/ru/System.Resources.ResourceManager.xml",
+ "ref/dotnet/zh-hans/System.Resources.ResourceManager.xml",
+ "ref/dotnet/zh-hant/System.Resources.ResourceManager.xml",
+ "ref/net45/_._",
+ "ref/netcore50/System.Resources.ResourceManager.dll",
+ "ref/netcore50/System.Resources.ResourceManager.xml",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll"
+ ]
+ },
+ "System.Runtime/4.0.20-beta-23127": {
+ "serviceable": true,
+ "sha512": "naLsXkry4PBYCdXLOGx2r9TRuFWJpdZvV7W9rk4QRTPTS7H9911J09o8KXrhX+NW28YVsCgvcw8Wr0JsFEQdLQ==",
+ "files": [
+ "System.Runtime.4.0.20-beta-23127.nupkg",
+ "System.Runtime.4.0.20-beta-23127.nupkg.sha512",
+ "System.Runtime.nuspec",
+ "lib/DNXCore50/System.Runtime.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Runtime.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Runtime.dll",
+ "ref/dotnet/System.Runtime.xml",
+ "ref/dotnet/de/System.Runtime.xml",
+ "ref/dotnet/es/System.Runtime.xml",
+ "ref/dotnet/fr/System.Runtime.xml",
+ "ref/dotnet/it/System.Runtime.xml",
+ "ref/dotnet/ja/System.Runtime.xml",
+ "ref/dotnet/ko/System.Runtime.xml",
+ "ref/dotnet/ru/System.Runtime.xml",
+ "ref/dotnet/zh-hans/System.Runtime.xml",
+ "ref/dotnet/zh-hant/System.Runtime.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Runtime.dll"
+ ]
+ },
+ "System.Runtime.Extensions/4.0.10-beta-23127": {
+ "serviceable": true,
+ "sha512": "YwtpybYxpRqjF+TnBzmNdgGq2jNtEO9MkxYSIMW36lV7F6qEph+nCcKDLsCslgSz7dn44eSCnnsgBQQsF85eQQ==",
+ "files": [
+ "System.Runtime.Extensions.4.0.10-beta-23127.nupkg",
+ "System.Runtime.Extensions.4.0.10-beta-23127.nupkg.sha512",
+ "System.Runtime.Extensions.nuspec",
+ "lib/DNXCore50/System.Runtime.Extensions.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Runtime.Extensions.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Runtime.Extensions.dll",
+ "ref/dotnet/System.Runtime.Extensions.xml",
+ "ref/dotnet/de/System.Runtime.Extensions.xml",
+ "ref/dotnet/es/System.Runtime.Extensions.xml",
+ "ref/dotnet/fr/System.Runtime.Extensions.xml",
+ "ref/dotnet/it/System.Runtime.Extensions.xml",
+ "ref/dotnet/ja/System.Runtime.Extensions.xml",
+ "ref/dotnet/ko/System.Runtime.Extensions.xml",
+ "ref/dotnet/ru/System.Runtime.Extensions.xml",
+ "ref/dotnet/zh-hans/System.Runtime.Extensions.xml",
+ "ref/dotnet/zh-hant/System.Runtime.Extensions.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll"
+ ]
+ },
+ "System.Runtime.Handles/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "q+CqdcecC00xfyVHTQhtned/RNzZhAtS/04uchISsl5ovKEAnnSRCOPOJJud/dl9iW12U+Lt8YlKub/LoxbZtQ==",
+ "files": [
+ "System.Runtime.Handles.4.0.0-beta-23127.nupkg",
+ "System.Runtime.Handles.4.0.0-beta-23127.nupkg.sha512",
+ "System.Runtime.Handles.nuspec",
+ "lib/DNXCore50/System.Runtime.Handles.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Runtime.Handles.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Runtime.Handles.dll",
+ "ref/dotnet/System.Runtime.Handles.xml",
+ "ref/dotnet/de/System.Runtime.Handles.xml",
+ "ref/dotnet/es/System.Runtime.Handles.xml",
+ "ref/dotnet/fr/System.Runtime.Handles.xml",
+ "ref/dotnet/it/System.Runtime.Handles.xml",
+ "ref/dotnet/ja/System.Runtime.Handles.xml",
+ "ref/dotnet/ko/System.Runtime.Handles.xml",
+ "ref/dotnet/ru/System.Runtime.Handles.xml",
+ "ref/dotnet/zh-hans/System.Runtime.Handles.xml",
+ "ref/dotnet/zh-hant/System.Runtime.Handles.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll"
+ ]
+ },
+ "System.Runtime.InteropServices/4.0.20-beta-23127": {
+ "serviceable": true,
+ "sha512": "oJpQACYOQ/TXcIEZh8MdIqkDlRrnXV9DoPiVnXUgnKYFub7NnKb02sx65eWrNPwutt0ewDD9hNAuPjAGBC1MQA==",
+ "files": [
+ "System.Runtime.InteropServices.4.0.20-beta-23127.nupkg",
+ "System.Runtime.InteropServices.4.0.20-beta-23127.nupkg.sha512",
+ "System.Runtime.InteropServices.nuspec",
+ "lib/DNXCore50/System.Runtime.InteropServices.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Runtime.InteropServices.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Runtime.InteropServices.dll",
+ "ref/dotnet/System.Runtime.InteropServices.xml",
+ "ref/dotnet/de/System.Runtime.InteropServices.xml",
+ "ref/dotnet/es/System.Runtime.InteropServices.xml",
+ "ref/dotnet/fr/System.Runtime.InteropServices.xml",
+ "ref/dotnet/it/System.Runtime.InteropServices.xml",
+ "ref/dotnet/ja/System.Runtime.InteropServices.xml",
+ "ref/dotnet/ko/System.Runtime.InteropServices.xml",
+ "ref/dotnet/ru/System.Runtime.InteropServices.xml",
+ "ref/dotnet/zh-hans/System.Runtime.InteropServices.xml",
+ "ref/dotnet/zh-hant/System.Runtime.InteropServices.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll"
+ ]
+ },
+ "System.Text.Encoding/4.0.10-beta-23127": {
+ "sha512": "XUOP6mx45Fk4fUcinHnUdeXGzQaXGskTBvI4/v195wCyUhsHQXFvnVVDevMoFlrcjb7Lvm6UdIORmqA1y4onmg==",
+ "files": [
+ "System.Text.Encoding.4.0.10-beta-23127.nupkg",
+ "System.Text.Encoding.4.0.10-beta-23127.nupkg.sha512",
+ "System.Text.Encoding.nuspec",
+ "lib/DNXCore50/System.Text.Encoding.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Text.Encoding.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Text.Encoding.dll",
+ "ref/dotnet/System.Text.Encoding.xml",
+ "ref/dotnet/de/System.Text.Encoding.xml",
+ "ref/dotnet/es/System.Text.Encoding.xml",
+ "ref/dotnet/fr/System.Text.Encoding.xml",
+ "ref/dotnet/it/System.Text.Encoding.xml",
+ "ref/dotnet/ja/System.Text.Encoding.xml",
+ "ref/dotnet/ko/System.Text.Encoding.xml",
+ "ref/dotnet/ru/System.Text.Encoding.xml",
+ "ref/dotnet/zh-hans/System.Text.Encoding.xml",
+ "ref/dotnet/zh-hant/System.Text.Encoding.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll"
+ ]
+ },
+ "System.Text.Encoding.Extensions/4.0.10-beta-23127": {
+ "sha512": "Vrbl+i8CCNo4Z8K1tNJ5GURvvbq+sS0J9mWsEZglFH8fJeq6oLTHPQYehrTe/dorz0gnSALUINGoOwHkCbki+Q==",
+ "files": [
+ "System.Text.Encoding.Extensions.4.0.10-beta-23127.nupkg",
+ "System.Text.Encoding.Extensions.4.0.10-beta-23127.nupkg.sha512",
+ "System.Text.Encoding.Extensions.nuspec",
+ "lib/DNXCore50/System.Text.Encoding.Extensions.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Text.Encoding.Extensions.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Text.Encoding.Extensions.dll",
+ "ref/dotnet/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/de/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/es/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/fr/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/it/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/ja/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/ko/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/ru/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/zh-hans/System.Text.Encoding.Extensions.xml",
+ "ref/dotnet/zh-hant/System.Text.Encoding.Extensions.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll"
+ ]
+ },
+ "System.Threading/4.0.10-beta-23127": {
+ "serviceable": true,
+ "sha512": "hIUes/USmGxoe2haJennL0AREdIq8RA50IL0lBSdqant19L8fRydW5Nz5qfWpSKUBtibQzrcJ1c5nFVNUs4Cyw==",
+ "files": [
+ "System.Threading.4.0.10-beta-23127.nupkg",
+ "System.Threading.4.0.10-beta-23127.nupkg.sha512",
+ "System.Threading.nuspec",
+ "lib/DNXCore50/System.Threading.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Threading.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Threading.dll",
+ "ref/dotnet/System.Threading.xml",
+ "ref/dotnet/de/System.Threading.xml",
+ "ref/dotnet/es/System.Threading.xml",
+ "ref/dotnet/fr/System.Threading.xml",
+ "ref/dotnet/it/System.Threading.xml",
+ "ref/dotnet/ja/System.Threading.xml",
+ "ref/dotnet/ko/System.Threading.xml",
+ "ref/dotnet/ru/System.Threading.xml",
+ "ref/dotnet/zh-hans/System.Threading.xml",
+ "ref/dotnet/zh-hant/System.Threading.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Threading.dll"
+ ]
+ },
+ "System.Threading.Overlapped/4.0.0-beta-23127": {
+ "serviceable": true,
+ "sha512": "Do4dCnys5YNKU9OSaCVIS3pM9Ke0O7x41b+Gbxs6sXJ4zEYg0zbc/hI9t5fdeXXGFqQ7C6uDilQhHAz5GePyJA==",
+ "files": [
+ "System.Threading.Overlapped.4.0.0-beta-23127.nupkg",
+ "System.Threading.Overlapped.4.0.0-beta-23127.nupkg.sha512",
+ "System.Threading.Overlapped.nuspec",
+ "lib/DNXCore50/System.Threading.Overlapped.dll",
+ "lib/net46/System.Threading.Overlapped.dll",
+ "lib/netcore50/System.Threading.Overlapped.dll",
+ "ref/dotnet/System.Threading.Overlapped.dll",
+ "ref/dotnet/System.Threading.Overlapped.xml",
+ "ref/dotnet/de/System.Threading.Overlapped.xml",
+ "ref/dotnet/es/System.Threading.Overlapped.xml",
+ "ref/dotnet/fr/System.Threading.Overlapped.xml",
+ "ref/dotnet/it/System.Threading.Overlapped.xml",
+ "ref/dotnet/ja/System.Threading.Overlapped.xml",
+ "ref/dotnet/ko/System.Threading.Overlapped.xml",
+ "ref/dotnet/ru/System.Threading.Overlapped.xml",
+ "ref/dotnet/zh-hans/System.Threading.Overlapped.xml",
+ "ref/dotnet/zh-hant/System.Threading.Overlapped.xml",
+ "ref/net46/System.Threading.Overlapped.dll"
+ ]
+ },
+ "System.Threading.Tasks/4.0.10-beta-23127": {
+ "serviceable": true,
+ "sha512": "5K6t1u3aT7Yh8PbqmXyTnjDo4OJWDCCqHmAccauJ35hnXthzgSBiMvVr2wxtAl7A8eK/lVcSPKJIheJ6MZnLcg==",
+ "files": [
+ "System.Threading.Tasks.4.0.10-beta-23127.nupkg",
+ "System.Threading.Tasks.4.0.10-beta-23127.nupkg.sha512",
+ "System.Threading.Tasks.nuspec",
+ "lib/DNXCore50/System.Threading.Tasks.dll",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net46/_._",
+ "lib/netcore50/System.Threading.Tasks.dll",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "ref/dotnet/System.Threading.Tasks.dll",
+ "ref/dotnet/System.Threading.Tasks.xml",
+ "ref/dotnet/de/System.Threading.Tasks.xml",
+ "ref/dotnet/es/System.Threading.Tasks.xml",
+ "ref/dotnet/fr/System.Threading.Tasks.xml",
+ "ref/dotnet/it/System.Threading.Tasks.xml",
+ "ref/dotnet/ja/System.Threading.Tasks.xml",
+ "ref/dotnet/ko/System.Threading.Tasks.xml",
+ "ref/dotnet/ru/System.Threading.Tasks.xml",
+ "ref/dotnet/zh-hans/System.Threading.Tasks.xml",
+ "ref/dotnet/zh-hant/System.Threading.Tasks.xml",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net46/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "": [
+ "System.Collections >= 4.0.10-beta-*",
+ "System.Console >= 4.0.0-beta-*",
+ "System.IO >= 4.0.10-beta-*",
+ "System.IO.FileSystem >= 4.0.0-beta-*",
+ "System.Runtime.Extensions >= 4.0.10-beta-*",
+ "System.Runtime.InteropServices >= 4.0.20-beta-*"
+ ],
+ "DNXCore,Version=v5.0": []
+ }
+} \ No newline at end of file