Ich habe ein Projekt, das ich mit Beta8 Bits von .net Core gestartet habe und seitdem habe ich eine F # -Bibliothek, die ich von einer asp.net Core C# App verwende. (Btw here ist ein RC2 auf Basis minimaler Proben zur Referenzierung der F # lib von einem Netto-Core basierte Konsole app)
Hier ist, wie ich es tat:
Aktuell (meines Wissens nach) gibt es keine Vorlage in VS um eine coreCLR-basierte F # -Bibliothek zu erstellen (die SPS-Vorlagen unter F # sind alle Full-Framework-basiert, aber Sie können immer noch nicht vom asp.net-Core aus referenzieren, selbst wenn es auf einem vollständigen Framework läuft), Sie müssen dies über die Befehlszeile tun. Dies geschieht durch:
dotnet new --lang F#
Dies schafft Ihnen eine Hallo Welt coreCLR F # App. Sie können die App in eine Klassenbibliothek verwandeln, indem Sie die Datei project.json ändern.
Wenn Sie eine VS-Lösung haben und auf "Hinzufügen" -> "Vorhandenes Projekt" klicken, können Sie die Datei project.json auswählen. Auf diese Weise fügen Sie es zu Ihrer Lösung hinzu (und außerdem wird eine xproj-Datei erstellt).
An diesem Punkt haben Sie das coreCLR-basierte F # -Projekt in Ihrer Lösung. Ich glaube, indem ich mit der rechten Maustaste auf das asp.net-Kernprojekt klicke und auf "Hinzufügen" -> "Referenz" -> Projekte-> Lösungen gehe und die F # -Bibliothek auswähle, kann man schon darauf verweisen. Wenn dies nicht funktioniert, können Sie es manuell tun: Listen Sie einfach das F # -Projekt unter den "Abhängigkeiten" in der project.json der asp.net-Kernanwendung auf.
Wenn Ihre asp.net Core App auf dem vollständigen Framework ausgeführt wird, müssen Sie diese Schritte ausführen. Es ist eigentlich nicht wirklich wichtig.
Jetzt der schlechte Teil:
- Im RTM (veröffentlicht am Montag) der „Dotnet neue“ Befehl erstellt eine uncompliable F # app, weil einige Abhängigkeitsprobleme. Dies wird verfolgt here (der Titel sagt "auf MacOS", aber es ist das gleiche unter Windows) und sobald es gelöst ist, sollte dies in Ordnung sein (oder wenn Sie RTM noch nicht installiert haben und Sie RC2 sind Sie auch gut).
- Intellisense und Debuggen über F # und C# nicht (ich habe es here) auf diesem
gibt es eine aktuellere Informationen funktionieren? Ich versuche, eine F # -Klassenbibliothek zu bekommen, die in einer Lösung mit anderen C# asp.net-Kernprojekten arbeitet, aber kein Glück hat. Gibt es ein gutes Beispiel für ein derzeit funktionierendes Projekt.json für dieses Szenario? –
@JoeAudette Hier ist eine detailliertere Beschreibung mit einer Beispiellösung: http://kalapos.azurewebsites.net/referencing-an-f-library-from-c-on-net-core Nach meinem Wissen ist das die aktuelle Stufe (Und so arbeite ich heute ...). Laut der Roadmap "Bessere IDE-Erfahrung mit Workspace-Unterstützung für den F # -Sprachendienst" wird es in der RTM-Toolbox kommen (was genau das bedeutet, weiß ich nicht ..) https://blogs.msdn.microsoft.com/dotnet/ 2016/07/15/net-core-roadmap/ – gregkalapos
@gegkalapos, danke! das Problem, das ich habe, ist meine F # -Klassenbibliothek Ich möchte einen Controller machen, in project.json habe ich die benötigten Abhängigkeiten hinzugefügt, aber VS sagt, dass der Namespace in dieser Zeile in meinem Code nicht verfügbar ist, so wie er das nicht sieht Abhängigkeiten, die ich referenziere: öffnen Microsoft.AspNetCore.Mvc –