dot net core build platform / os spezifische Code- oder Klassendateien

Ich möchte eine .net-Kernbibliothek mit plattformspezifischem Code für Win32- und OSX-Aufrufe erstellen. Wenn ich die Bibliothek für jedes Ziel-OS kompiliere, möchte ich den richtigen OS-Code einschließen.

Ich habe mir das corefx und viele Dokumente angesehen und nach langem googeln die einzige Möglichkeit gefunden, die Betriebssystemerkennung zur Laufzeit durchzuführen, aber das ist sowohl ineffizient als auch mühsam. Im Fall von corefx verfügen sie über ein komplexes Build-System, das plattformspezifische Dateien scheinbar automatisch abruft, sich jedoch auf msbuild und mehr stützt. Vermisse ich etwas?

Wie kann ich Code für ein Betriebssystem entweder auf Dateiebene oder auf Codeebene als bedingtes Ziel festlegen?

#,if osx
// come code
#endif

Oder nach golangs Art und Weise, indem Sie den Namen des Betriebssystems in den Dateinamen wie MyClass.osx.cs für OSX-Code und MyClass.cs für Nicht-Plattform-Inhalte einfügen. Der Erstellungsprozess wird die korrekten Dateien selbst einschließen.

Ich verwende Visual Studio-Code und project.json.

(Ich denke, in Visual Studio könnte ich jedes Plattformziel definieren und meine eigenen Definitionen einfügen, aber ich bin auf osx)

Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage