From fbafeb42ea7488fa62240f03a233ddef9382a210 Mon Sep 17 00:00:00 2001 From: "Eric St. John" Date: Thu, 16 Feb 2017 16:41:21 -0800 Subject: [PATCH] Make sure Memory and Unsafe are packaged w/o RID The workaround being used by our build system to only build these packages on Windows was leaking into the packaging. To fix that I overrode the packaging RID for Unsafe, since it was the only thing that actually needed the filtering. Then to fix Memory I added a reference assembly for unsafe and built against that instead. --- src/System.Memory/src/Configurations.props | 5 ++- src/System.Memory/src/System.Memory.csproj | 15 ++++--- ...System.Runtime.CompilerServices.Unsafe.sln | 20 +++++++-- ...em.Runtime.CompilerServices.Unsafe.pkgproj | 3 +- .../ref/Configurations.props | 9 ++++ .../System.Runtime.CompilerServices.Unsafe.cs | 38 +++++++++++++++++ ...tem.Runtime.CompilerServices.Unsafe.csproj | 18 ++++++++ .../src/Configurations.props | 1 + .../System.Runtime.CompilerServices.Unsafe.il | 42 +++++++++---------- ...tem.Runtime.CompilerServices.Unsafe.ilproj | 9 ++++ .../src/include/netstandard/coreassembly.h | 20 +++++++++ .../src/include/netstandard1.0/coreassembly.h | 8 ++++ 12 files changed, 152 insertions(+), 36 deletions(-) create mode 100644 src/System.Runtime.CompilerServices.Unsafe/ref/Configurations.props create mode 100644 src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.cs create mode 100644 src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.csproj create mode 100644 src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard/coreassembly.h create mode 100644 src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard1.0/coreassembly.h diff --git a/src/System.Memory/src/Configurations.props b/src/System.Memory/src/Configurations.props index 0e50b7d232cf..dbb4f7264cc1 100644 --- a/src/System.Memory/src/Configurations.props +++ b/src/System.Memory/src/Configurations.props @@ -2,9 +2,10 @@ - netstandard1.0-Windows_NT; - netstandard-Windows_NT; + netstandard1.0; + netstandard; netcoreapp-Windows_NT; + netcoreapp-Unix; uap-Windows_NT; diff --git a/src/System.Memory/src/System.Memory.csproj b/src/System.Memory/src/System.Memory.csproj index 74c329c4e9c5..4ff412887ec3 100644 --- a/src/System.Memory/src/System.Memory.csproj +++ b/src/System.Memory/src/System.Memory.csproj @@ -8,12 +8,14 @@ $(OutputPath)$(MSBuildProjectName).xml true + + - - - - + + + + @@ -31,14 +33,15 @@ - + + - + diff --git a/src/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln b/src/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln index ecd573ee3597..04f4b6bdcde1 100644 --- a/src/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln +++ b/src/System.Runtime.CompilerServices.Unsafe/System.Runtime.CompilerServices.Unsafe.sln @@ -8,11 +8,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServ EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "src\System.Runtime.CompilerServices.Unsafe.ilproj", "{04BA3E3C-6979-4792-B19E-C797AD607F42}" + ProjectSection(ProjectDependencies) = postProject + {649A377C-1E07-4105-B01F-7F1044D3356C} = {649A377C-1E07-4105-B01F-7F1044D3356C} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Runtime.CompilerServices.Unsafe", "ref\System.Runtime.CompilerServices.Unsafe.csproj", "{649A377C-1E07-4105-B01F-7F1044D3356C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -23,10 +30,14 @@ Global {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.ActiveCfg = netstandard1.0-Windows_NT-Debug|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.Build.0 = netstandard1.0-Windows_NT-Debug|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.ActiveCfg = netstandard1.0-Windows_NT-Release|Any CPU - {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.Build.0 = netstandard1.0-Windows_NT-Release|Any CPU + {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.ActiveCfg = netstandard-Windows_NT-Debug|Any CPU + {04BA3E3C-6979-4792-B19E-C797AD607F42}.Debug|Any CPU.Build.0 = netstandard-Windows_NT-Debug|Any CPU + {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.ActiveCfg = netstandard-Windows_NT-Release|Any CPU + {04BA3E3C-6979-4792-B19E-C797AD607F42}.Release|Any CPU.Build.0 = netstandard-Windows_NT-Release|Any CPU + {649A377C-1E07-4105-B01F-7F1044D3356C}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU + {649A377C-1E07-4105-B01F-7F1044D3356C}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU + {649A377C-1E07-4105-B01F-7F1044D3356C}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU + {649A377C-1E07-4105-B01F-7F1044D3356C}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -34,5 +45,6 @@ Global GlobalSection(NestedProjects) = preSolution {8012DD70-A6D7-45C0-BC8E-DFFB48D86E08} = {1A2F9F4A-A032-433E-B914-ADD5992BB178} {04BA3E3C-6979-4792-B19E-C797AD607F42} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD} + {649A377C-1E07-4105-B01F-7F1044D3356C} = {2E666815-2EDB-464B-9DF6-380BF4789AD4} EndGlobalSection EndGlobal diff --git a/src/System.Runtime.CompilerServices.Unsafe/pkg/System.Runtime.CompilerServices.Unsafe.pkgproj b/src/System.Runtime.CompilerServices.Unsafe/pkg/System.Runtime.CompilerServices.Unsafe.pkgproj index b6659d64b02c..d73c618a40f4 100644 --- a/src/System.Runtime.CompilerServices.Unsafe/pkg/System.Runtime.CompilerServices.Unsafe.pkgproj +++ b/src/System.Runtime.CompilerServices.Unsafe/pkg/System.Runtime.CompilerServices.Unsafe.pkgproj @@ -3,9 +3,10 @@ - + net45;netcore45;wp8;wpa81;netcoreapp1.0;$(AllXamarinFrameworks) + \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/ref/Configurations.props b/src/System.Runtime.CompilerServices.Unsafe/ref/Configurations.props new file mode 100644 index 000000000000..84da57e60d75 --- /dev/null +++ b/src/System.Runtime.CompilerServices.Unsafe/ref/Configurations.props @@ -0,0 +1,9 @@ + + + + + netstandard1.0; + netstandard; + + + \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.cs b/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.cs new file mode 100644 index 000000000000..f1b70158e21c --- /dev/null +++ b/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.cs @@ -0,0 +1,38 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +// ------------------------------------------------------------------------------ +// Changes to this file must follow the http://aka.ms/api-review process. +// ------------------------------------------------------------------------------ + +namespace System.Runtime.CompilerServices +{ + public static partial class Unsafe + { + public static ref T AddByteOffset(ref T source, System.IntPtr byteOffset) { throw null; } + public static ref T Add(ref T source, int elementOffset) { throw null; } + public static ref T Add(ref T source, System.IntPtr elementOffset) { throw null; } + public static bool AreSame(ref T left, ref T right) { throw null; } + public unsafe static void* AsPointer(ref T value) { throw null; } + public unsafe static ref T AsRef(void* source) { throw null; } + public static T As(object o) where T : class { throw null; } + public static ref TTo As(ref TFrom source) { throw null; } + public static System.IntPtr ByteOffset(ref T origin, ref T target) { throw null; } + public static void CopyBlock(ref byte destination, ref byte source, uint byteCount) { } + public unsafe static void CopyBlock(void* destination, void* source, uint byteCount) { } + public static void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount) { } + public unsafe static void CopyBlockUnaligned(void* destination, void* source, uint byteCount) { } + public unsafe static void Copy(void* destination, ref T source) { } + public unsafe static void Copy(ref T destination, void* source) { } + public static void InitBlock(ref byte startAddress, byte value, uint byteCount) { } + public unsafe static void InitBlock(void* startAddress, byte value, uint byteCount) { } + public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount) { } + public unsafe static void InitBlockUnaligned(void* startAddress, byte value, uint byteCount) { } + public unsafe static T Read(void* source) { throw null; } + public static int SizeOf() { throw null; } + public static ref T SubtractByteOffset(ref T source, System.IntPtr byteOffset) { throw null; } + public static ref T Subtract(ref T source, int elementOffset) { throw null; } + public static ref T Subtract(ref T source, System.IntPtr elementOffset) { throw null; } + public unsafe static void Write(void* destination, T value) { } + } +} diff --git a/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.csproj b/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.csproj new file mode 100644 index 000000000000..d8813306c857 --- /dev/null +++ b/src/System.Runtime.CompilerServices.Unsafe/ref/System.Runtime.CompilerServices.Unsafe.csproj @@ -0,0 +1,18 @@ + + + + + true + {649A377C-1E07-4105-B01F-7F1044D3356C} + false + + + + + + + + + + + \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/src/Configurations.props b/src/System.Runtime.CompilerServices.Unsafe/src/Configurations.props index 89e8bae0b147..b27f27df3468 100644 --- a/src/System.Runtime.CompilerServices.Unsafe/src/Configurations.props +++ b/src/System.Runtime.CompilerServices.Unsafe/src/Configurations.props @@ -4,6 +4,7 @@ netstandard1.0-Windows_NT; + netstandard-Windows_NT; \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il b/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il index 0eb1aa409191..4ce6df0047f4 100644 --- a/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il +++ b/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il @@ -1,43 +1,39 @@ -// Metadata version: v4.0.30319 -.assembly extern System.Runtime -{ - .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: - .ver 4:0:0:0 -} +#include "coreassembly.h" + .assembly System.Runtime.CompilerServices.Unsafe { - .custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) - .custom instance void [System.Runtime]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx + .custom instance void [CORE_ASSEMBLY]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) + .custom instance void [CORE_ASSEMBLY]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. // --- The following custom attribute is added automatically, do not uncomment ------- - // .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) + // .custom instance void [CORE_ASSEMBLY]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [CORE_ASSEMBLY]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) - .custom instance void [System.Runtime]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 34 2E 30 2E 30 2E 30 00 00 ) // ...4.0.0.0.. - .custom instance void [System.Runtime]System.Reflection.AssemblyInformationalVersionAttribute::.ctor(string) = ( 01 00 07 34 2E 30 2E 30 2E 30 00 00 ) // ...4.0.0.0.. - .custom instance void [System.Runtime]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 26 53 79 73 74 65 6D 2E 52 75 6E 74 69 6D // ..&System.Runtim + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 34 2E 30 2E 30 2E 30 00 00 ) // ...4.0.0.0.. + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyInformationalVersionAttribute::.ctor(string) = ( 01 00 07 34 2E 30 2E 30 2E 30 00 00 ) // ...4.0.0.0.. + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 26 53 79 73 74 65 6D 2E 52 75 6E 74 69 6D // ..&System.Runtim 65 2E 43 6F 6D 70 69 6C 65 72 53 65 72 76 69 63 // e.CompilerServic 65 73 2E 55 6E 73 61 66 65 00 00 ) // es.Unsafe.. - .custom instance void [System.Runtime]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 26 53 79 73 74 65 6D 2E 52 75 6E 74 69 6D // ..&System.Runtim + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 26 53 79 73 74 65 6D 2E 52 75 6E 74 69 6D // ..&System.Runtim 65 2E 43 6F 6D 70 69 6C 65 72 53 65 72 76 69 63 // e.CompilerServic 65 73 2E 55 6E 73 61 66 65 00 00 ) // es.Unsafe.. - .custom instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string, string) = ( + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyMetadataAttribute::.ctor(string, string) = ( 01 00 15 2e 4e 45 54 46 72 61 6d 65 77 6f 72 6b 41 73 73 65 6d 62 6c 79 00 00 00 ) // ".NETFrameworkAssembly", "" - .custom instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string, string) = ( + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyMetadataAttribute::.ctor(string, string) = ( 01 00 0b 53 65 72 76 69 63 65 61 62 6c 65 04 54 72 75 65 00 00 ) // "Serviceable", "True" - .custom instance void [System.Runtime]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 2F C2 A9 20 4D 69 63 72 6F 73 6F 66 74 20 // ../.. Microsoft + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 2F C2 A9 20 4D 69 63 72 6F 73 6F 66 74 20 // ../.. Microsoft 43 6F 72 70 6F 72 61 74 69 6F 6E 2E 20 20 41 6C // Corporation. Al 6C 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 // l rights reserve 64 2E 00 00 ) // d... - .custom instance void [System.Runtime]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 15 4D 69 63 72 6F 73 6F 66 74 20 43 6F 72 // ...Microsoft Cor + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 15 4D 69 63 72 6F 73 6F 66 74 20 43 6F 72 // ...Microsoft Cor 70 6F 72 61 74 69 6F 6E 00 00 ) // poration.. - .custom instance void [System.Runtime]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 1A 4D 69 63 72 6F 73 6F 66 74 C2 AE 20 2E // ...Microsoft.. . + .custom instance void [CORE_ASSEMBLY]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 1A 4D 69 63 72 6F 73 6F 66 74 C2 AE 20 2E // ...Microsoft.. . 4E 45 54 20 46 72 61 6D 65 77 6F 72 6B 00 00 ) // NET Framework.. - .custom instance void [System.Runtime]System.CLSCompliantAttribute::.ctor(bool) = ( + .custom instance void [CORE_ASSEMBLY]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 00 00 00 ) // false .hash algorithm 0x00008004 @@ -56,7 +52,7 @@ // =============== CLASS MEMBERS DECLARATION =================== .class public abstract auto ansi sealed beforefieldinit System.Runtime.CompilerServices.Unsafe - extends [System.Runtime]System.Object + extends [CORE_ASSEMBLY]System.Object { .method public hidebysig static !!T Read(void* source) cil managed aggressiveinlining { @@ -332,9 +328,9 @@ } // end of class System.Runtime.CompilerServices.Unsafe .class private auto ansi sealed beforefieldinit System.Runtime.Versioning.NonVersionableAttribute - extends [System.Runtime]System.Attribute + extends [CORE_ASSEMBLY]System.Attribute { - .custom instance void [System.Runtime]System.AttributeUsageAttribute::.ctor(valuetype [System.Runtime]System.AttributeTargets) = ( 01 00 6C 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ..l.....T..Allow + .custom instance void [CORE_ASSEMBLY]System.AttributeUsageAttribute::.ctor(valuetype [CORE_ASSEMBLY]System.AttributeTargets) = ( 01 00 6C 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77 // ..l.....T..Allow 4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65 // Multiple.T..Inhe 72 69 74 65 64 00 ) // rited. .method public hidebysig specialname rtspecialname @@ -342,7 +338,7 @@ { .maxstack 1 ldarg.0 - call instance void [System.Runtime]System.Attribute::.ctor() + call instance void [CORE_ASSEMBLY]System.Attribute::.ctor() ret } // end of method NonVersionableAttribute::.ctor diff --git a/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.ilproj b/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.ilproj index f81b53e450fe..39874d049d2c 100644 --- a/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.ilproj +++ b/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.ilproj @@ -4,11 +4,20 @@ $(MSBuildThisFileDirectory)System.Runtime.CompilerServices.Unsafe.xml {04BA3E3C-6979-4792-B19E-C797AD607F42} + $(IlasmFlags) /INCLUDE=include\$(TargetGroup) + + + + + + + + \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard/coreassembly.h b/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard/coreassembly.h new file mode 100644 index 000000000000..efcc029381d1 --- /dev/null +++ b/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard/coreassembly.h @@ -0,0 +1,20 @@ +#define CORE_ASSEMBLY "System.Runtime" + +// Metadata version: v4.0.30319 +.assembly extern CORE_ASSEMBLY +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 4:0:0:0 +} + +/* ILasm currently complains when seeing a [netstandard]System.Object + temporarily reference System.Runtime until we can get a fix in ilasm. +#define CORE_ASSEMBLY "netstandard" + +// Metadata version: v4.0.30319 +.assembly extern CORE_ASSEMBLY +{ + .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) // .{...-.Q + .ver 2:0:0:0 +} +*/ \ No newline at end of file diff --git a/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard1.0/coreassembly.h b/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard1.0/coreassembly.h new file mode 100644 index 000000000000..cee9c905b7ef --- /dev/null +++ b/src/System.Runtime.CompilerServices.Unsafe/src/include/netstandard1.0/coreassembly.h @@ -0,0 +1,8 @@ +#define CORE_ASSEMBLY "System.Runtime" + +// Metadata version: v4.0.30319 +.assembly extern CORE_ASSEMBLY +{ + .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: + .ver 4:0:0:0 +} \ No newline at end of file