System.Numerics kann unter OS X nicht mit Befehlszeilen-Mono (mcs) verwendet werden
Wir versuchen, unter OS X ein einfaches Mono-Skript in der Befehlszeile auszuführen. Die meisten Skripte funktionieren einwandfrei, aber sobald wir versuchen, System.Numerics zu verwenden, wird der Fehler CS0234: Der Typ oder der Namespace-Name `Numerics 'existiert nicht im Namespace System. "
Dies ist nicht allzu überraschend und sollte mit einer geeigneten Befehlszeilenoption für mcs repariert werden können. Außerdem sollte PKG_CONFIG_PATH ordnungsgemäß eingerichtet werden. Hier ist zunächst das Skript, damit Sie zu Hause mitlesen können:
using System;
using System.Numerics;
public static class MainProgram {
public static void Main(string[] args) {
Console.WriteLine("Hello world!");
}
}
Als nächstes haben wir "mcs -r: System.Numerics Test.cs" ausprobiert. Dies erzeugt "Fehler CS0006: Metadatendatei` System.Numerics 'konnte nicht gefunden werden ".
"man mcs" schlägt vor, dass wir die anderen Systempakete erhalten können, indem wir "-pkg: dotnet" zur Befehlszeile hinzufügen. Aber das ergibt:
Paket dotnet wurde im Suchpfad pkg-config nicht gefunden. Vielleicht sollten Sie das Verzeichnis mit "dotnet.pc" zur Umgebungsvariablen PKG_CONFIG_PATH hinzufügen. Kein Paket "dotnet" gefunden Fehler CS8027: Fehler beim Ausführen von pkg-config. Überprüfen Sie die obige Ausgabe.
OK, dann hatten wir kein PKG_CONFIG_PATH, also haben wir versucht, eines zu definieren:
export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/
Dies behebt den CS8027; aber wir bekommen immer noch die CS0234, mit der wir angefangen haben. Und wenn ich das -pkg und das -r kombiniere, z. "mcs -pkg: dotnet -r: System.Numerics Test.cs", erhalte ich die Fehlermeldung "CS0006: Die Metadatendatei" System.Numerics "konnte nicht gefunden werden".
Ich bin an diesem Punkt ratlos ... irgendeine Idee, welche Beschwörung ich vermisse, um System.Numerics mit mcs arbeiten zu lassen?