C# .Net核心应用程序中缺少NativeCallableAttribute

C# .Net核心应用程序中缺少NativeCallableAttribute,c#,.net,.net-core,coreclr,C#,.net,.net Core,Coreclr,我在github上的coreclr存储库中找到了的这个实现。它看起来像是2年前添加的,您可以发现单元测试显示它的工作原理与 我创建了一个新的.Net core 2.0项目,System.Runtime.InteropServices命名空间中没有NativeCallableAttribute。使用这个类需要添加一些nuget包吗?我尝试了nuget packageSystem.Runtime.InteropServices,但仍然缺少该属性。NativeCallableAttribute位于Sy

我在github上的coreclr存储库中找到了的这个实现。它看起来像是2年前添加的,您可以发现单元测试显示它的工作原理与


我创建了一个新的.Net core 2.0项目,
System.Runtime.InteropServices
命名空间中没有
NativeCallableAttribute
。使用这个类需要添加一些nuget包吗?我尝试了nuget package
System.Runtime.InteropServices
,但仍然缺少该属性。

NativeCallableAttribute
位于
System.Private.CoreLib
程序集中。只需从项目中引用它,并使用
System.Runtime.InteropServices
命名空间的指令添加

更新:

在哪里可以获得System.Private.CoreLib?在nuget和上找不到它 VisualStudio中的AddReference对话框没有用于我的.Net Core的对话框 项目

我已经用ReSharper添加了程序集引用。您也可以通过向csproj文件中添加以下部分来执行此操作:

<ItemGroup>
  <Reference Include="System.Private.CoreLib">
    <HintPath>C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.5\System.Private.CoreLib.dll</HintPath>
  </Reference>
</ItemGroup>

C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.5\System.Private.CoreLib.dll

NativeCallableAttribute
驻留在
System.Private.CoreLib
程序集中。只需从项目中引用它,并使用
System.Runtime.InteropServices
命名空间的指令添加

更新:

在哪里可以获得System.Private.CoreLib?在nuget和上找不到它 VisualStudio中的AddReference对话框没有用于我的.Net Core的对话框 项目

我已经用ReSharper添加了程序集引用。您也可以通过向csproj文件中添加以下部分来执行此操作:

<ItemGroup>
  <Reference Include="System.Private.CoreLib">
    <HintPath>C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.5\System.Private.CoreLib.dll</HintPath>
  </Reference>
</ItemGroup>

C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.0.5\System.Private.CoreLib.dll

在哪里可以获得
System.Private.CoreLib
?在nuget上找不到它,VisualStudio中的
AddReference
对话框中没有它用于我的
.Net Core
项目。我从哪里获得
System.Private.CoreLib
?在nuget上找不到它,VisualStudio中的
AddReference
对话框中没有用于我的
.Net Core
项目的。它不是等效的。它只是Marshal.GetFunctionPointerForDelegate()的一个方便的替代品,这会让太多程序员陷入麻烦,因为他们忘记了保持委托的引用。您无法获得的是DLL入口点,即“非托管导出”。它不是等效的。它只是Marshal.GetFunctionPointerForDelegate()的一个方便的替代品,这会让太多程序员陷入麻烦,因为他们忘记了保持委托的引用。您无法获得的是DLL入口点,即“非托管导出”。