2017-12-06 4 views
0

この実装はgithubのcoreclrリポジトリにNativeCallableAttributeということがあります。 2年前に追加されたように見え、ユニットテストではUnmanaged exports for .Net Frameworkのように動作することがわかります。.NetコアアプリケーションにNativeCallableAttributeがありません

私は新しい.Netコア2.0プロジェクトを作成しました。System.Runtime.InteropServices名前空間にはNativeCallableAttributeが存在しません。このクラスを使用するために追加しなければならないナゲットパッケージがありますか?私はヌーゲットパッケージSystem.Runtime.InteropServicesを試しましたが、依然として属性がありません。

+0

これは同等ではありません。 Marshal.GetFunctionPointerForDelegate()は、代理人の参照を忘れてしまったために、あまりにも多くのプログラマーが困ってしまう便利な代用品に過ぎません。あなたが得ることができないものは、DLLのエントリポイント、 "管理されていないエクスポート"です。 –

答えて

2

NativeCallableAttributeは、System.Private.CoreLibアセンブリに存在する。プロジェクトから参照し、System.Runtime.InteropServices名前空間のusingディレクティブを追加してください。

UPDATE:私はSystem.Private.CoreLibを得るのですか

?ナゲットで見つからず、 VisualStudioのAddReferenceダイアログに.Net Core プロジェクト用のAddReferenceダイアログがありません。

私は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> 
+0

'System.Private.CoreLib'はどこで入手できますか?ナゲットでそれを見つけることができず、VisualStudioの 'AddReference'ダイアログに私の' .Net Core'プロジェクト用のダイアログがありません。 – ghord

+0

私の答えの更新を確認してください。 – CodeFuller

関連する問題