2017-12-06 1 views
0

Ich bin ziemlich verwirrend versuchen, eine. Net Core App in MacOs zu erstellen.Probleme beim Erstellen einer C# ClassLibrary in MacOS (. NET Core 2.0)

Ich folgte die tutorial hier gefunden und alles funktionierte gut, aber wenn ich versuchte, eine andere ClassLibrary mit einigen anderen Abhängigkeiten zu erstellen, funktioniert alles und ich kann nicht verstehen, warum.

Ich habe das VisualStudio 2017 mit .net Core SDK installiert, also denke ich, dass mein Mac jetzt alle pre-requisites hat, um meine C# -Bibliotheken zu erstellen. Zur Information, wenn ich gebe, erhalte ich 2.0.0.

Also erstelle ich eine neue ClassLibrary und setze das Zielframework auf netStandard 1.4, nach den Anweisungen found here, da ich will, dass meine Bibliothek in anderen Umgebungen außer MacOs und NetCore verwendet wird.

Das Problem ist, dass anscheinend net Core 2.0 in meinem Mac nicht alle notwendigen Baugruppen hat die Bibliothek zu erstellen, weil ein einfacher Code wie unten mit der Meldung

„Fehler CS0234 ist gebrochen: Die Typ oder Namespace Name 'Cryptography' existiert nicht im Namensraum 'System.Security' (fehlen Sie eine Baugruppe Referenz?) (CS0234)“

MD5 md5 = new MD5CryptoServiceProvider(); 

im haben den Code using System.Security.Cryptography; oben in meiner Datei, so sollte es funktionieren, da dieses Modul available since netstandard1.1 ist, richtig?

Ich weiß, dass ich irgendeine Art von Verwirrung mache, aber ich möchte verstehen, wo mein Fehler ist.

Kann ich in meinem MacOS eine ClassLibrary erstellen, die auf netstandanrd1.4 abzielt und sogar .NET CORE 2.0 ausführt? Wenn ja, wo finde ich die fehlenden Assemblies für .NET-Bibliotheken? Sollte ich etwas installieren?

Antwort

0

.NET Standard 1.4 wird nur in .NET Core 1.0 unterstützt. Nicht 2,0

Reference of Supported Libraries

Sie können eine frühere Version von .NET Kernziel durch diese in Ihrer CSPROJ Datei angeben, indem Sie die folgenden Schritte aus:

<Project Sdk="Microsoft.NET.Sdk.Web"> 

    <PropertyGroup> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    </PropertyGroup> 

</Project> 
+0

Wo kann ich diese Informationen gefunden? Haben Sie eine Idee, was ich tun soll, um meine Bibliothek mit Mac zu erstellen, die mit anderen alten Implementierungen von netstandard kompatibel ist? – James

+1

Ich habe den obigen Referenzartikel verlinkt. Sie können .NET Core 1.0 in Ihrem Projekt verwenden. Ich werde meine Antwort auf .NET Core 1 Ziel aktualisieren. –

+0

Dies ist falsch. Der .NET Standard baut aufeinander auf. Alles, was .NET Standard 1.4 unterstützt, sollte .NET Standard 2.0 unterstützen. Und Sie können .NET Standard 1.4-Bibliotheken in ein .NET Core 2.0-Projekt hinzufügen. – MindingData