共用方式為


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

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

先決條件

本教學課程適用於您在 使用 Visual Studio 建立的 .NET 控制台應用程式

發佈應用程式

  1. 啟動 Visual Studio。

  2. 開啟您在使用 Visual Studio 建立 .NET 控制台應用程式中建立的HelloWorld 專案。

  3. 請確認 Visual Studio 正在使用發行版本組態。 如果有需要,請將工具列上的組建配置設定從 [除錯] 變更為 [發佈版]

    已選取發行組建的Visual Studio工具列

  4. 以滑鼠右鍵按兩下 HelloWorld 專案(而非 HelloWorld 方案),然後從功能表中選取 [ 發佈 ]。

    Visual Studio 發行右鍵選單

  5. 在 [發佈] 頁面的 [目標] 索引標籤上,選取 [資料夾],然後選取 [下一步]。

    在 Visual Studio 中挑選發佈目標

  6. 在 [發佈] 頁面的 [特定目標] 索引標籤上,選取 [資料夾],然後選取 [下一步]。

    在 Visual Studio 中挑選特定的發佈目標

  7. 在 [發佈] 頁面的 [位置] 索引標籤上,選取 [完成]。

    Visual Studio 發佈頁面位置索引標籤

  8. [發佈設定檔建立進度]頁面上,選取[關閉]

  9. 在 [ 發佈 ] 視窗的 [ 發佈 ] 索引標籤上,選取 [ 發佈]。

    Visual Studio [發佈] 視窗

檢查檔案

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

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

  1. [方案總管] 中,選取 [顯示所有檔案]。

  2. 在專案資料夾中,展開 bin/Release/{net}/publish。 (其中 {net} 是目標架構資料夾,例如 net8.0

    顯示已發佈檔案的方案總管

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

    • HelloWorld.deps.json

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

    • HelloWorld.dll

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

    • HelloWorld.exe

      這是應用程式的架構相依可執行檔版本。 若要執行它,請在命令提示字元中輸入 HelloWorld.exe 。 檔案是操作系統特定的。

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

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

    • HelloWorld.runtimeconfig.json

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

執行已發佈的應用程式

  1. [方案總管] 中,以滑鼠右鍵按兩下 [發佈 ] 資料夾,然後選取 [ 複製完整路徑]。

  2. 開啟命令提示字元並流覽至 publish 資料夾。 若要這樣做,請輸入 cd ,然後貼上完整路徑。 例如:

    cd C:\Projects\HelloWorld\bin\Release\net8.0\publish\
    
  3. 使用可執行檔案執行應用程式:

    1. 輸入 HelloWorld.exe,然後按 Enter

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

  4. 使用 dotnet 命令執行應用程式:

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

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

其他資源

後續步驟

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