建立 F# 應用程式

已完成

至此,您已使用 REPL,甚至可能已建立 fsx 指令碼檔案。 到現在您已開發應用程式,因此您需要包含更多檔案,以及封裝和散發應用程式的能力。 若要這樣做,您必須建立專案。 .NET SDK 提供各種專案範本,可協助您開始建立所有類型的應用程式。

什麼是 .NET 範本?

安裝 .NET SDK 時,您會收到十多個用於建立專案和檔案的內建範本,包括:

  • 主控台應用程式
  • 類別庫
  • 單元測試專案
  • ASP.NET Core Web 應用程式
  • 組態檔

F# 支援各種不同的範本,從測試和網站到類別庫,應有盡有。 如需完整的支援專案清單,請在主控台中執行 dotnet new -l

使用下列範本建立應用程式

若要建立新的應用程式,請使用 dotnet new .NET CLI 命令。 例如,如果您想要建立 F# 主控台應用程式,您可以使用下列命令。

dotnet new console --language F# -o MyFSharpApp

某些殼層會將 # 解譯為特殊字元。 在這種情況下,請用引號括住語言,如 dotnet new console --language "F#" -o MyFSharpApp

dotnet new console 命令會使用內建的主控台 .NET 範本來建構新的主控台應用程式。

幾秒鐘之後,名為 MyFSharpApp 的目錄隨即顯示您 F# 應用程式的程式碼。

專案結構

MyFSharpApp目錄中有兩個檔案:

  • Program.fs:您應用程式的進入點。
  • MyFSharpApp.fsproj:MSBuild 專案檔,其中包含組建資訊和指示。 MSBuild 是用來建立應用程式的平台,可提供專案檔的 XML 架構,以控制組建平台處理和建立軟體的方式。

Program.fs 檔案包含下列程式碼:

// Learn more about F# at http://learn.microsoft.com/dotnet/fsharp

open System

// Define a function to construct a message to print
let from whom =
    sprintf "from %s" whom

[<EntryPoint>]
let main argv =
    let message = from "F#" // Call the function
    printfn "Hello world %s" message
    0 // return an integer exit code

此應用程式會使用以 open 關鍵字匯入的 System 類別庫。

from 函式會使用 whom 字串參數來建立和格式化字串訊息。

main 函式是應用程式的進入點。 其使用 from 函式建立訊息「from F#」並將值繫結至 message。 然後,使用 printfn 函式,會將「Hello world from F#」列印到主控台。

建置應用程式

現在您已經建立了主控台應用程式,現在可以使用 dotnet build 命令來加以建立。 dotnet build 命令會將專案及其相依性建置成一組二進位檔。 二進位檔包含中繼語言 (IL) 檔案 (副檔名為 .dll) 的專案程式碼。 視專案類型和設定而定,可能會包含其他檔案,例如:

  • 可以用來執行應用程式的可執行檔 (如果專案類型是以 .NET Core 3.0 或更新版本為目標的可執行檔)。
  • 用於進行偵錯工具的符號檔 (副檔名為 .pdb)。
  • .deps.json 檔案,其會列出應用程式或程式庫的相依性。
  • .runtimeconfig.json 檔案,可指定共用的執行階段及應用程式的版本。
  • 專案相依的其他程式庫 (透過專案參考或 NuGet 封裝參考)。

輸出檔會寫入至預設位置,即 bin/<configuration>/<target>。 Debug 是預設設定,但您可以使用 --configuration 選項來加以覆寫。 目標是指在 fsproj 檔案的 TargetFramework 屬性中指定的目標 Framework。 目標 Framework 會指定一組您想要在應用程式或程式庫使用的 API。 例如,您有 .NET 5 應用程式並執行 dotnet build,則輸出會放置在 bin/Debug/net5.0

執行您的應用程式

針對可執行的應用程式,此 dotnet run 命令提供您方便選項來執行應用程式。 此 dotnet run 命令會在您的輸出目錄中尋找 .dll 或可執行檔,並使用 dotnet 驅動程式來執行應用程式的進入點 (Program.fs)。

提示

當您使用 dotnet run 命令時,dotnet build 也會自動執行。 因此,您可以為自己省下明確建立應用程式的步驟。