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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage