Freigeben über


Entwickeln mit Visual F# in Visual Studio

Dieser Artikel enthält Informationen zu Visual Studio-Features für die F#-Entwicklung.

F#-Unterstützung installieren

Um mit F# in Visual Studio zu entwickeln, installieren Sie zuerst die .NET-Desktopentwicklungsworkload , sofern noch nicht geschehen. Sie installieren Visual Studio-Workloads über Visual Studio Installer, die Sie öffnen können, indem Sie Tools>abrufen und Features auswählen.

.NET-Desktopentwicklungsworkload in Visual Studio

F#-Projektfeatures

In Visual Studio stehen verschiedene Projekt- und Elementvorlagen für F# zur Verfügung. Die folgende Abbildung zeigt einige der F#-Projektvorlagen für .NET Core und .NET Standard:

F#-Projektvorlagen in Visual Studio

Die folgende Abbildung zeigt einige der F#-Elementvorlagen:

F#-Elementvorlagen in Visual Studio

Weitere Informationen zu den Elementvorlagen für den Datenzugriff finden Sie unter F#-Typanbietern.

In der folgenden Tabelle sind die Features in Projekteigenschaften für F# zusammengefasst:

Projekteinstellung Wird in F# unterstützt? Hinweise
Ressourcendateien Ja
Erstellen, Debuggen und Referenzeinstellungen Ja
Mehrfachzielansprache Ja
Symbol und Manifest Nein Verfügbar über Compiler-Befehlszeilenoptionen.
ASP.NET-Clientdienste Nein
ClickOnce Nein Verwenden Sie ggf. ein Clientprojekt in einer anderen .NET-Sprache.
Starke Benennung Nein Verfügbar über Compiler-Befehlszeilenoptionen.
Assemblyveröffentlichung und Versionsverwaltung Nein
Codeanalyse Nein Codeanalysetools können manuell oder als Teil eines Postbuildbefehls ausgeführt werden.
Sicherheit (Vertrauensebenen ändern) Nein

Projektgestalter

Project Designer besteht aus mehreren Projekteigenschaftenseiten, die nach verwandten Funktionen gruppiert sind. Die für F#-Projekte verfügbaren Seiten sind hauptsächlich eine Teilmenge der für andere Sprachen verfügbaren Seiten und werden in der folgenden Tabelle beschrieben. Links werden zur entsprechenden C# -Projekt-Designer-Seite bereitgestellt.

Projekt-Designer-Seite Verwandte Links BESCHREIBUNG
Anwendung Anwendungsseite, Project Designer Ermöglicht es Ihnen, Einstellungen und Eigenschaften auf Anwendungsebene anzugeben, z. B. ob Sie eine Bibliothek oder eine ausführbare Datei erstellen, welche Version von .NET die Anwendung angibt, und Informationen darüber, wo die von der Anwendung verwendeten Ressourcendateien gespeichert sind.
Bauen Buildseite, Project Designer Hiermit können Sie steuern, wie der Code kompiliert wird.
Buildereignisse Seite "Ereignisse erstellen", Project Designer Ermöglicht ihnen die Angabe von Befehlen, die vor oder nach einer Kompilierung ausgeführt werden sollen.
Fehlersuche Debugseite, Project Designer Hiermit können Sie steuern, wie die Anwendung während des Debuggens ausgeführt wird. Dazu gehören die zu verwendenden Befehle und das Startverzeichnis Ihrer Anwendung sowie alle speziellen Debugmodi, die Sie aktivieren möchten, z. B. systemeigener Code und SQL.
Paket (nur.NET SDK) Nicht verfügbar Ermöglicht das Definieren von NuGet-Paketmetadaten beim Veröffentlichen als NuGet-Paket.
Referenzpfade Verwalten von Verweisen in einem Projekt Hiermit können Sie angeben, wo nach Assemblys gesucht werden soll, von denen der Code abhängt.
Ressourcen (nur.NET SDK) Nicht verfügbar Ermöglicht ihnen das Generieren und Verwalten einer Standardressourcendatei.

F#-spezifische Einstellungen

In der folgenden Tabelle sind die Einstellungen zusammengefasst, die für F# spezifisch sind:

Projekt-Designer-Seite Konfiguration BESCHREIBUNG
Bauen Generieren von Tail-Aufrufen Wenn diese Option ausgewählt ist, wird die Verwendung der Microsoft Intermediate Language (MSIL)-Anweisung aktiviert. Dies bewirkt, dass der Stapelframe für rekursive Tail-Funktionen wiederverwendet wird. Entspricht der --tailcalls Compileroption.
Bauen Andere Kennzeichnungen Ermöglicht ihnen, zusätzliche Compiler-Befehlszeilenoptionen anzugeben.

Code- und Text-Editor-Features

Die folgenden Features von Visual Studio-Code und Text-Editoren werden in F# unterstützt:

Merkmal BESCHREIBUNG Wird in F# unterstützt?
Automatisches Kommentieren Ermöglicht das Kommentieren oder Aufheben von Kommentaren in Codeabschnitten. Ja
Automatisches Formatieren Reformatscode mit Standardeinzug und Formatvorlage. Nein
Lesezeichen Ermöglicht das Speichern von Orten im Editor. Ja
Einzug ändern Einzüge oder Nichteinzüge ausgewählter Linien. Ja
Intelligente Einzug Der Cursor wird automatisch gemäß F#-Bereichsregeln eingerückt und heruntergezogen. Ja
Suchen und Ersetzen von Text Ermöglicht es Ihnen, in einer Datei, einem Projekt oder einer Lösung zu suchen und möglicherweise Text zu ändern. Ja
Zur Definition für die .NET-API wechseln Wenn der Cursor in einer .NET-API positioniert wird, wird Code angezeigt, der aus .NET-Metadaten generiert wurde. Nein
Zur Definition für benutzerdefinierte API wechseln Wenn sich der Cursor auf einer von Ihnen definierten Programmentität befindet, wird der Cursor an die Position im Code verschoben, an der die Entität definiert ist. Ja
Gehe zu Zeile Ermöglicht das Wechseln zu einer bestimmten Zeile in einer Datei nach Zeilennummer. Ja
Navigationsleisten am Anfang der Datei Ermöglicht es Ihnen, zu Positionen im Code zu springen, z. B. funktionsname. Ja
Richtlinien für blockstruktur Zeigt Richtlinien an, die F#-Bereiche angeben, die für eine Vorschau angezeigt werden können. Ja
Gliedern Hiermit können Sie Abschnitte des Codes reduzieren, um eine kompaktere Ansicht zu erstellen. Ja
Tabify Wandelt Leerzeichen in Registerkarten um. Ja
Typfarbfarbe Zeigt definierte Typnamen in einer speziellen Farbe an. Ja
Schnellsuche. Siehe "Schnellsuche", "Suchen und Ersetzen". Ermöglicht es Ihnen, in einer Datei oder einem Projekt zu suchen. Ja
Strg+klicken, um zur Definition zu wechseln Ermöglicht es Ihnen, STRG gedrückt zu halten und auf ein F#-Symbol zu klicken, um "Gehe zu Definition" aufzurufen. Ja
Zur Definition von QuickInfo wechseln Klickbare Symbole in QuickInfos, die "Gehe zu Definition" aufrufen. Ja
Gehe zu "Alle" Aktiviert die globale Fuzzy-Abgleichsnavigation für alle F#-Konstrukte über STRG+T. Ja
Inlineumbenennung Benennt alle Vorkommen eines Symbols inline um. Ja
Alle Verweise suchen Sucht alle Vorkommen eines Symbols in einer Codebasis. Ja
Vereinfachen der Namenscodekorrektur Entfernt unnötige Qualifizierer für F#-Symbole. Ja
Entfernen nicht verwendeter open Anweisungscodekorrektur Entfernt alle unnötigen open Anweisungen in einem Dokument. Ja
Nicht verwendeter Wertcodekorrektur Schlägt vor, einen nicht verwendeten Bezeichner in Unterstrich umzubenennen. Ja

Allgemeine Informationen zum Bearbeiten von Code in Visual Studio und Features des Text-Editors finden Sie unter Schreiben von Code im Editor.

IntelliSense-Features

In der folgenden Tabelle sind IntelliSense-Features zusammengefasst, die in F# unterstützt und nicht unterstützt werden:

Merkmal BESCHREIBUNG Wird in F# unterstützt?
Automatische Implementierung von Schnittstellen Generiert Code-Stubs für Schnittstellenmethoden. Ja
Codeausschnitte Fügt Code aus einer Bibliothek allgemeiner Codierungskonstrukte in Themen ein. Nein
Word fertigstellen Speichert die Eingabe, indem Wörter und Namen während der Eingabe abgeschlossen werden. Ja
Automatische Fertigstellung Wenn diese Option aktiviert ist, wird der Wortabschluss während der Eingabe die erste Übereinstimmung markieren, anstatt darauf zu warten, dass Sie eine der Wörter auswählen oderSTRG-LEERTASTE+ drücken. Ja
Angebotsabschluss für Symbole in ungeöffneten Namespaces Bei der automatischen Fertigstellung wird ein übereinstimmende Symbol vorgeschlagen, das sich in einem ungeöffneten Namespace befindet, und bietet bei Auswahl die entsprechende open Anweisung an. Ja
Generieren von Codeelementen Ermöglicht das Generieren von Stubcode für eine Vielzahl von Konstrukten. Nein
Member auflisten Wenn Sie den Memberzugriffsoperator (.) eingeben, werden Elemente für einen Typ angezeigt. Ja
Organisieren von Verwendungen/Öffnen Organisiert Namespaces, auf die mithilfe von Anweisungen in C# oder geöffneten Direktiven in F# verwiesen wird. Nein
Parameterinformationen Zeigt hilfreiche Informationen zu Parametern an, während Sie einen Funktionsaufruf eingeben. Ja
Schnellinfos Zeigt die vollständige Deklaration für jeden Bezeichner im Code an. Ja
Automatische Vervollständigung der geschweiften Klammer Schließt automatisch F#-Klammern-ähnliche Syntaxkonstrukte auf transaktionsbezogene Weise ab. Ja

Allgemeine Informationen zu IntelliSense finden Sie unter Verwenden von IntelliSense.

Debuggingfeatures

In der folgenden Tabelle sind Features zusammengefasst, die beim Debuggen von F#-Code verfügbar sind:

Merkmal BESCHREIBUNG Wird in F# unterstützt?
Fenster "Automatisch" Zeigt automatische oder temporäre Variablen an. Nein
Haltepunkte Ermöglicht das Anhalten der Codeausführung an bestimmten Punkten beim Debuggen. Ja
Bedingte Haltepunkte Aktiviert Haltepunkte, die eine Bedingung testen, die bestimmt, ob die Ausführung angehalten werden soll. Ja
Bearbeiten und Fortfahren Ermöglicht das Ändern und Kompilieren von Code beim Debuggen eines ausgeführten Programms, ohne den Debugger zu beenden und neu zu starten. Nein
Ausdrucksauswertung Wertet Code zur Laufzeit aus und führt diesen aus. Nein, aber der C#-Ausdrucksauswerter kann verwendet werden, obwohl Sie C#-Syntax verwenden müssen.
Historisches Debugging Ermöglicht es Ihnen, in zuvor ausgeführten Code einzusteigen. Ja
Lokalfenster Zeigt lokal definierte Werte und Variablen an. Ja
An Cursor ausführen Ermöglicht ihnen das Ausführen von Code, bis die Zeile, die den Cursor enthält, erreicht ist. Ja
Einzelschritt Ermöglicht es Ihnen, die Ausführung voranzutreiben und in einen beliebigen Funktionsaufruf zu wechseln. Ja
Schritt-über Ermöglicht es Ihnen, die Ausführung im aktuellen Stapelframe voranzutreiben und über einen beliebigen Funktionsaufruf hinauszubewegen. Ja

Allgemeine Informationen zum Visual Studio-Debugger finden Sie unter Debuggen in Visual Studio.

Weitere Tools

In der folgenden Tabelle sind die Unterstützung für F# in Visual Studio-Tools zusammengefasst.

Werkzeug BESCHREIBUNG Wird in F# unterstützt?
Anrufhierarchie Zeigt die geschachtelte Struktur von Funktionsaufrufen in Ihrem Code an. Nein
Codemetriken Sammelt Informationen zu Ihrem Code, z. B. Zeilenanzahlen. Nein
Klassenansicht Stellt eine typbasierte Ansicht des Codes in einem Projekt bereit. Nein
Fehlerlistenfenster Zeigt eine Liste der Fehler im Code an. Ja
F# Interactive Ermöglicht es Ihnen, F#-Code einzugeben (oder einzufügen) und sofort auszuführen, unabhängig vom Erstellen Ihres Projekts. Das Interaktive F#-Fenster ist eine Lese-, Auswertungs-, Druckschleife (REPL). Ja
Objektbrowser Ermöglicht das Anzeigen der Typen in einer Assembly. F#-Typen, wie sie in kompilierten Assemblys angezeigt werden, werden nicht genau angezeigt, wenn Sie sie erstellen. Sie können die kompilierte Darstellung von F#-Typen durchsuchen, aber Sie können die Typen nicht anzeigen, wie sie aus F# angezeigt werden.
Ausgabefenster Zeigt die Buildausgabe an. Ja
Leistungsanalyse Stellt Tools zum Messen der Leistung Ihres Codes bereit. Ja
Eigenschaften-Fenster Zeigt die Eigenschaften des Objekts in der Entwicklungsumgebung an, die den Fokus besitzt, und ermöglicht die Bearbeitung. Ja
Server-Explorer Bietet Möglichkeiten, mit einer Vielzahl von Serverressourcen zu interagieren. Ja
Lösungs-Explorer Ermöglicht ihnen das Anzeigen und Verwalten von Projekten und Dateien. Ja
Aufgabenliste Ermöglicht ihnen das Verwalten von Arbeitsaufgaben im Zusammenhang mit Ihrem Code. Nein
Testprojekte Stellt Features bereit, mit denen Sie Ihren Code testen können. Nein
Werkzeugkasten Zeigt Registerkarten an, die ziehbare Objekte wie Steuerelemente und Abschnitte von Text oder Code enthalten. Ja

Siehe auch