.Net Core 应用程序中缺少 NativeCallableAttribute

NativeCallableAttribute missing in .Net Core application

我找到了 NativeCallableAttribute in coreclr repository on github. It looks like it was added 2 years ago and you can find unit tests showing that it works just like Unmanaged exports for .Net Framework 的实现。

我创建了一个新的 .Net core 2.0 项目,System.Runtime.InteropServices 命名空间中没有 NativeCallableAttribute。我必须添加一些 nuget 包才能使用这个 class 吗?我试过 nuget 包 System.Runtime.InteropServices 但仍然缺少属性。

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

更新:

Where do I get System.Private.CoreLib? Cannot find it on nuget and AddReference dialog in VisualStudio does not have it for my .Net Core project.

我已经添加了 ReSharper 的程序集参考。您可以通过将以下部分添加到您的 csproj 文件来执行相同的操作:

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