教學課程:使用Visual StudioCode發佈 .NET 控制台應用程式

本教學課程示範如何發佈主控台應用程式,以便其他使用者執行它。 發佈會建立執行應用程式所需的一組檔案。 若要部署檔案,請將檔案複製到目標計算機。

.NET CLI 用於發佈應用程式。

先決條件

發佈應用程式

  1. 啟動 Visual Studio Code。

  2. 開啟您在 使用 Visual Studio Code建立 .NET 控制台應用程式中所建立 HelloWorld 項目資料夾。

  3. 從主功能表中選擇 檢視>終端機

    終端機會在 HelloWorld 目錄中開啟。

  4. 執行下列命令:

    dotnet publish
    

    默認建構組態是 Release,適用於在生產環境中執行的已部署的網站。 發行版組建設定的輸出含有最小的符號偵錯資訊,並已完全優化。

    命令輸出類似於下列範例:

    Restore complete (1.1s)
      HelloWorld net10.0 succeeded (7.8s) → bin\Release\net10.0\publish\
    
    Build succeeded in 10.3s
    
  1. 打開你在 Visual Studio Code 建立 .NET 控制台應用程式時建立的 GitHub Codespace。

  2. HelloWorld.cs頂部加上以下程式碼行:

    #:property PublishAot=false
    

    此屬性指令會禁用原生預先編譯(AOT),應用程式在執行時將使用標準的即時編譯器(JIT)。 發表的成果會依框架而異。

  3. 在終端機裡,確定你在 教學 資料夾裡。

  4. 執行下列命令:

    dotnet publish HelloWorld.cs
    

    指令會建立一個獨立的執行檔。

    命令輸出類似於下列範例:

    Restore complete (0.5s)
      HelloWorld net10.0 succeeded (4.0s) → artifacts\HelloWorld\
    
    Build succeeded in 5.1s
    

檢查檔案

根據預設,發佈程式會建立架構相依部署,這是一種部署類型,其中已發行的應用程式會在已安裝 .NET 運行時間的計算機上執行。 若要執行已發佈的應用程式,您可以使用可執行檔,或從命令提示字元執行 dotnet HelloWorld.dll 命令。

在下列步驟中,您將查看發行程式所建立的檔案。

  1. 選取左側導覽列中的 瀏覽器

  2. 展開 bin/Release/net10.0/publish

    瀏覽器顯示已發行檔案

    如下圖所示,已發佈的輸出包含下列檔案:

    • HelloWorld.deps.json

      這是應用程式的運行時間相依性檔案。 它會定義執行應用程式所需的 .NET 元件和連結庫(包括包含您應用程式的動態連結庫)。 如需詳細資訊,請參閱 運行時間組態檔。

    • HelloWorld.dll

      這是 架構相依部署的應用程式 版本。 若要執行此動態連結庫,請在命令提示字元中輸入 dotnet HelloWorld.dll。 執行應用程式的這個方法可在已安裝 .NET 運行時間的任何平台上運作。

    • HelloWorld.exeLinux 或 macOS 上的 HelloWorld。)

      這是應用程式 版本的 架構相依可執行檔。 檔案是操作系統特定的。

    • HelloWorld.pdb (部署時可選用)

      這是偵錯符號檔案。 您不需要將這個檔案與應用程式一起部署,但您應該保存它,以便在需要偵錯您應用程式的發行版本時使用。

    • HelloWorld.runtimeconfig.json

      這是應用程式的運行時間組態檔。 它會識別應用程式建置用來執行之 .NET 的版本。 您也可以將組態選項新增至其中。 如需詳細資訊,請參閱.NET 運行時間組態設定。

對於單一檔案應用程式,發佈流程會建立一個包含已編譯組合檔的工件目錄。 已發佈的應用程式可以使用以下 dotnet 指令執行。

在下列步驟中,您將查看發行程式所建立的檔案。

  1. 選取左側導覽列中的 瀏覽器

  2. 擴展 文物/HelloWorld

    瀏覽器顯示已發行檔案

    如下圖所示,已發佈的輸出包含下列檔案:

    • HelloWorld

      這是應用程式 版本的 架構相依可執行檔。 檔案是操作系統特定的。 Codespace 在 Linux 上運行,所以這是 Linux 可執行檔。

    • HelloWorld.deps.json

      這是應用程式的運行時間相依性檔案。 它會定義執行應用程式所需的 .NET 元件和連結庫(包括包含您應用程式的動態連結庫)。 如需詳細資訊,請參閱 運行時間組態檔。

    • HelloWorld.dll

      這是 架構相依部署的應用程式 版本。 若要執行此動態連結庫,請在命令提示字元中輸入 dotnet HelloWorld.dll。 執行應用程式的這個方法可在已安裝 .NET 運行時間的任何平台上運作。

    • HelloWorld.pdb (部署時可選用)

      這是偵錯符號檔案。 您不需要將這個檔案與應用程式一起部署,但您應該保存它,以便在需要偵錯您應用程式的發行版本時使用。

    • HelloWorld.runtimeconfig.json

      這是應用程式的運行時間組態檔。 它會識別應用程式建置用來執行之 .NET 的版本。 您也可以將組態選項新增至其中。 如需詳細資訊,請參閱.NET 運行時間組態設定。

    右鍵點擊並選擇 下載...... 即可從 Codespaces 將檔案下載到你的本地電腦。

執行已發佈的應用程式

  1. Explorer中,以滑鼠右鍵按兩下 [發佈] 資料夾(Ctrl-click on macOS),然後 選取 [在整合式終端機中開啟]

    顯示 [終端機] 中開啟的 [操作] 功能表

  2. 在 Windows 或 Linux 上,使用可執行檔執行應用程式。

    1. 在 Windows 上,輸入 .\HelloWorld.exe,然後按 Enter

    2. 在 Linux 上,輸入 ./HelloWorld,然後按 Enter

    3. 輸入名稱以回應提示,然後按 Enter 結束。

  3. 在任何平臺上,使用 dotnet 命令執行應用程式:

    1. 輸入 dotnet HelloWorld.dll,然後按 Enter

    2. 輸入名稱以回應提示,然後按 Enter 結束。

  1. 檔案總管中,右鍵點擊 artifacts/HelloWorld 資料夾,選擇「 在整合終端機開啟」。

  2. 用執行檔執行應用程式。 ./HelloWorld然後按下 Enter 鍵。

  3. 輸入名稱以回應提示,然後按 Enter 結束。

其他資源

清理資源

GitHub 會在你 30 天不活躍後自動刪除你的 Codespace。 如果你打算繼續探索這個系列的更多教學,可以讓你的 Codespace 保持配置。 如果你準備好去 .NET 網站 下載 .NET SDK,你可以刪除你的 Codespace。 要刪除你的 Codespace,打開瀏覽器視窗並導航到 你的 Codespaces。 你會在視窗中看到你的代碼空間清單。 在學習教學程式碼空間中選擇三個點...()。 然後選擇「刪除」。

後續步驟

在本教學課程中,您已發布一個主控台應用程式。 在下一個教學課程中,您會建立類別庫。