建立 F# 應用程式
此時,您已使用 Read-Evaluate-Print-Loop (REPL),甚至可能建立 fsx 腳本檔案。 現在,您正處在應用程式成長的階段,而且您需要包含更多檔案。 您也想要能夠封裝和散發應用程式。 若要這樣做,您必須建立專案。 .NET SDK 提供各種專案範本,可協助您開始建立所有類型的應用程式。
什麼是 .NET 範本?
安裝 .NET SDK 時,您會收到十多個用於建立專案和檔案的內建範本,包括:
- 主控台應用程式
- 類別庫
- 單元測試專案
- ASP.NET Core Web 應用程式
- 組態檔
F# 支援各種範本,從測試和 Web 專案到類別庫的所有專案。 如需完整的支援專案清單,請在主控台中執行 dotnet new -l。
使用下列範本建立應用程式
若要建立新的應用程式,請使用 dotnet new .NET CLI 命令。 例如,如果您想要建立 F# 主控台應用程式,請使用下列命令。
dotnet new console --language F# -o MyFSharpApp
某些Shell會將#解譯為特殊字元。 在這種情況下,請用引號括住語言,如 dotnet new console --language "F#" -o MyFSharpApp。
此 dotnet new console 命令會使用內建的主控台 .NET 範本來建構新的主控台應用程式。
幾秒鐘之後,名為 MyFSharpApp 的目錄隨即顯示您 F# 應用程式的程式碼。
專案結構
MyFSharpApp目錄中有兩個檔案:
- Program.fs:您應用程式的進入點。
- MyFSharpApp.fsproj - 包含組建資訊和指示的 MSBuild 項目檔。 MSBuild 是用來建立應用程式的平台,可提供專案檔的 XML 架構,以控制組建平台處理和建立軟體的方式。
備註
如果您的主控台範本是使用較新版本的 .NET 所建立,它可能會產生程式碼,其中包含一個隱含進入點,預設會呼叫printfn。
在下列範例中, Program.fs 檔案包含具有 明確 進入點的程序代碼。
// Learn more about F# at https://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
此應用程式會使用以 System 關鍵字匯入的 open 類別庫。
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 選項來加以覆寫。 目標是指在 TargetFramework 檔案的 屬性中指定的目標 Framework。 目標框架指定您希望在應用程式或程式庫中使用的一組 API。 例如,您有 .NET 5 應用程式並執行 dotnet build,則輸出會放置在 bin/Debug/net5.0。
執行您的應用程式
針對可執行的應用程式,此 dotnet run 命令提供您方便選項來執行應用程式。 此 dotnet run 命令會在您的輸出目錄中尋找 .dll 或可執行檔,並使用 dotnet 驅動程式來執行應用程式的進入點 (Program.fs)。
提示
當您使用 dotnet run 命令時,dotnet build 也會自動執行。 因此,您可以為自己省下明確建立應用程式的步驟。