Freigeben über


Erste Schritte mit F# mit der .NET CLI

In diesem Artikel wird beschrieben, wie Sie mit F# auf jedem Beliebigen Betriebssystem (Windows, macOS oder Linux) mit der .NET CLI beginnen können. Es durchläuft das Erstellen einer Multiprojektlösung mit einer Klassenbibliothek, die von einer Konsolenanwendung aufgerufen wird.

Voraussetzungen

Zunächst müssen Sie das neueste .NET SDK installieren.

In diesem Artikel wird davon ausgegangen, dass Sie wissen, wie Sie eine Befehlszeile verwenden und über einen bevorzugten Text-Editor verfügen. Wenn Sie es noch nicht verwenden, ist Visual Studio Code eine hervorragende Option als Text-Editor für F#.

Erstellen einer einfachen Multiprojektlösung

Öffnen Sie eine Eingabeaufforderung oder ein Terminal und verwenden Sie den Befehl dotnet new, um eine neue Lösungsdatei namens FSharpSample zu erstellen.

dotnet new sln -o FSharpSample

Die folgende Verzeichnisstruktur wird nach dem Ausführen des vorherigen Befehls erstellt:

FSharpSample
    ├── FSharpSample.sln

Eine Klassenbibliothek erstellen

Ändern Sie Verzeichnisse in FSharpSample.

Verwenden Sie den dotnet new Befehl, um ein Klassenbibliotheksprojekt im Ordner "src " mit dem Namen "Library" zu erstellen.

dotnet new classlib -lang "F#" -o src/Library

Die folgende Verzeichnisstruktur wird nach dem Ausführen des vorherigen Befehls erstellt:

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        └── Library
            ├── Library.fs
            └── Library.fsproj

Ersetzen Sie den Inhalt von Library.fs durch den folgenden Code.

module Library

open System.Text.Json

let getJson value =
    let json = JsonSerializer.Serialize(value)
    value, json

Fügen Sie das Library Projekt zur FSharpSample Projektmappe hinzu, indem Sie den Befehl dotnet sln add verwenden. Mit diesem Befehl wird das Projekt der Projektmappendatei hinzugefügt, sodass die Lösung sie nachverfolgen und erstellen kann:

dotnet sln add src/Library/Library.fsproj

Führen Sie dotnet build aus, um das Projekt zu erstellen. Nicht aufgelöste Abhängigkeiten werden bei der Erstellung wiederhergestellt.

Schreiben einer Konsolenanwendung, die die Klassenbibliothek verwendet

Verwenden Sie den dotnet new Befehl, um eine Konsolenanwendung im Ordner "src " mit dem Namen "App" zu erstellen.

dotnet new console -lang "F#" -o src/App

Die folgende Verzeichnisstruktur wird nach dem Ausführen des vorherigen Befehls erstellt:

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        ├── App
        │   ├── App.fsproj
        │   ├── Program.fs
        └── Library
            ├── Library.fs
            └── Library.fsproj

Ersetzen Sie den Inhalt der Datei Program.fs durch den folgenden Code:

open System
open Library

[<EntryPoint>]
let main args =
    printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"

    let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
    printfn $"Input: %0A{value}"
    printfn $"Output: %s{json}"

    0 // return an integer exit code

Fügen Sie einen Verweis zum Projekt mithilfe von Librarydotnet reference add hinzu. Mit diesem Befehl wird der Datei "App.fsproj" ein <ProjectReference> Element hinzugefügt, das dem Compiler angibt, dass das App-Projekt vom Bibliotheksprojekt abhängt:

dotnet add src/App/App.fsproj reference src/Library/Library.fsproj

Der vorherige Befehl fügt der Datei "App.fsproj" den folgenden XML-Code hinzu:

<ItemGroup>
  <ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>

Tipp

Wenn Sie diesen Schritt überspringen und versuchen, das App-Projekt zu erstellen, erhalten Sie einen Kompilierungsfehler, da das Library Modul nicht gefunden wird. In diesem Fall können Sie entweder den dotnet add reference Befehl ausführen oder das <ProjectReference> oben gezeigte Element manuell zur Datei "App.fsproj" hinzufügen.

Fügen Sie das App Projekt mithilfe des FSharpSample Befehls zur dotnet sln add Lösung hinzu.

dotnet sln add src/App/App.fsproj

Stellen Sie die NuGet-Abhängigkeiten mit dotnet restore wieder her, und führen Sie dotnet build aus, um das Projekt zu erstellen.

Wechseln Sie zum src/App Konsolenprojektverzeichnis und führen Sie das Projekt aus, wobei Sie Hello World als Argumente übergeben.

cd src/App
dotnet run Hello World

Die Ergebnisse sollten wie folgt aussehen:

Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}

Nächste Schritte

Sehen Sie sich als Nächstes die Tour von F# an, um mehr über verschiedene F#-Features zu erfahren.