2017-12-06 5 views
0

Ich fand diese Implementierung von NativeCallableAttribute in Corecrr-Repository auf Github. Es sieht so aus, als ob es vor 2 Jahren hinzugefügt wurde und Sie können Komponententests finden, die zeigen, dass es genauso funktioniert wie Unmanaged exports for .Net Framework.NativeCallableAttribute fehlt in .Net Core-Anwendung

Ich habe ein neues .Net-Core 2.0-Projekt erstellt, und im System.Runtime.InteropServices Namespace ist kein NativeCallableAttribute vorhanden. Gibt es ein nugget-Paket, das ich hinzufügen muss, um diese Klasse zu verwenden? Ich habe nugget Paket System.Runtime.InteropServices versucht, aber das Attribut fehlt noch.

+0

Es ist nicht gleichwertig. Es ist nur ein praktischer Ersatz für Marshal.GetFunctionPointerForDelegate(), das zu viele Programmierer in Schwierigkeiten bringt, weil sie vergessen, den Delegierten referenziert zu halten. Was Sie nicht bekommen können, ist der DLL-Einstiegspunkt, der "unmanaged Export". –

Antwort

2

NativeCallableAttribute befindet sich in System.Private.CoreLib Versammlung. Referenzieren Sie es einfach von Ihrem Projekt und fügen Sie using Direktive für System.Runtime.InteropServices Namespace hinzu.

UPDATE:

Wo ich System.Private.CoreLib bekommen haben? Kann es nicht auf nugget finden und AddReference Dialogfeld in VisualStudio hat es nicht für meine. Net Core Projekt.

Ich habe Assembly-Referenz mit ReSharper hinzugefügt. Sie könnten dasselbe tun, indem Sie Ihrer csproj-Datei den folgenden Abschnitt hinzufügen:

<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

Woher bekomme ich 'System.Private.CoreLib'? Kann nicht in nugget gefunden werden und 'AddReference' Dialog in VisualStudio hat es nicht für mein' .Net Core' Projekt. – ghord

+0

Überprüfen Sie die Aktualisierung meiner Antwort. – CodeFuller

Verwandte Themen