Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
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:
Die folgende Abbildung zeigt einige der F#-Elementvorlagen:
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 |