練習 - 針對獨立式部署進行發佈

已完成

獨立式部署包括應用程式和其相依性,以及 .NET 運行時間。 由於 .NET 運行時間隨附於應用程式,因此目標計算機不需要安裝 .NET 運行時間,才能執行應用程式。 這可讓獨立式部署大於架構相依部署。 獨立應用程式也必須負責部署 .NET 執行階段更新以接收最新的修補程式。

IT 部門已經通知您的團隊,為了災害復原,他們正在測試您應用程式在未安裝 .NET 執行環境的伺服器上。 他們想要在64位 Windows 伺服器和64位Linux 伺服器上測試應用程式。 若要支援這項測試,您必須將應用程式發佈為每個環境的獨立式部署。

在此練習中,您會將 ASP.NET Core 應用程式發佈為適用於 Windows 和 Linux 的獨立部署。

發佈為獨立式部署

  1. 在終端機視窗中,流覽至 MyWebApp 目錄。 在上一個練習結束時,您位於 MyWebApp/publish-fd 中。 您必須返回 MyWebApp 目錄。

    cd ..
    

    您現在應該位於 MyWebApp 目錄中。

  2. 執行下列命令,將應用程式發佈為 64 位元 Windows 的獨立式部署:

    dotnet publish -c Release -r win-x64 -o publish-scd-win64 --self-contained
    

    在上一個命令中:

    • -c Release 指定應用程式應該以發行模式建置。 這會優化應用程式以達到效能。
    • -r win-x64 指定應該針對64位 Windows 發行應用程式。 win-x64 是 64 位 Windows 的 運行時間識別碼 (RID),因此應用程式會發佈為 64 位 Windows 的獨立部署。
    • -o publish-scd-win64 指定已發行應用程式的輸出目錄。
    • --self-contained 指定應用程式應該發佈為獨立式部署。

    此命令會將應用程式建置為 64 位元 Windows 的獨立式部署,並發佈至 MyWebApp/publish-scd-win64 目錄。

  3. 在檔案總管視窗中檢閱 MyWebApp/publish-scd-win64 目錄的內容。

    此目錄中的檔案清單明顯大於 publish-fd 目錄中的檔案清單。 這是因為除了 .NET 執行階段以外,獨立式部署也包含與架構相依部署相同的檔案。 MyWebApp.exe 檔案是應用程式的 64 位 Windows 可執行檔。

  4. 執行下列命令,將應用程式發佈為64位Linux的獨立部署:

    dotnet publish -c Release -r linux-x64 -o publish-scd-linux64 --self-contained
    

    這次, -r linux-x64 選項會指定應該針對 64 位 Linux 發佈應用程式。

  5. 在 [檔案總管視窗] 中檢閱 MyWebApp/publish-scd-linux64 目錄的內容。

    publish-scd-linux64 目錄中的檔案列表類似於 publish-scd-win64 目錄中的檔案清單,但可執行檔名為 MyWebApp,而不是 MyWebApp.exe。 這是因為 Linux 不會使用擴展名來判斷檔類型。 將應用程式部署至 Linux 伺服器之後,您必須使用 命令將執行許可權授與 chmod +x 檔案,才能執行。