使用 .NET Framework 建置 ASP.NET 應用程式

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

注意

在 Microsoft Team Foundation Server (TFS) 2018 和舊版中,組建和發行管線稱為定義、執行稱為組建服務連線稱為服務端點階段稱為環境,而作業稱為階段

注意

本文著重于使用 Azure Pipelines 建置.NET Framework專案。 如需 .NET Core 專案的協助,請參閱 .NET Core

建立您的第一個管線

您不熟悉 Azure Pipelines 嗎? 若是如此,建議您先嘗試本節,再移至其他區段。

取得程式碼

在 GitHub 派生下列存放庫:

在 Azure DevOps Server 2019 中將此存放庫匯入 Git 存放庫:

將此存放庫匯入 TFS 中的 Git 存放庫:

https://github.com/Azure-Samples/app-service-web-dotnet-get-started

範例應用程式是使用 .NET 4.8 的 Visual Studio 解決方案。

登入 Azure Pipelines

登入 Azure Pipelines。 登入之後,您的瀏覽器會前往 https://dev.azure.com/my-organization-name 並顯示您的 Azure DevOps 儀表板。

在您選取的組織內,建立一個「專案」。 如果您的組織中沒有任何專案,您會看到 [建立專案開始使用] 畫面。 否則,請選取儀表板右上角的 [新建專案] 按鈕。

注意

此案例適用于 TFS,但下列部分指示可能不符合您使用的 TFS 版本。 此外,您也需要設定自我裝載代理程式,也可能安裝軟體。 如果您是新的使用者,請先使用免費的 Azure DevOps 組織來嘗試此程式,以取得更好的學習體驗。 然後將此頁面左上角的選取器從 Team Foundation Server 變更為 Azure DevOps

  • 在您擁有自己的存放庫中的範例程式碼之後,請使用 建立第一個管線 中的指示建立管線,然後選取 ASP.NET 範本。 這會自動新增在範例存放庫中建置程式碼所需的工作。

  • 儲存管線並將組建排入佇列,以查看其實際操作。

建置環境

您可以使用 Azure Pipelines 來建置.NET Framework專案,而不需要設定您自己的任何基礎結構。 Azure Pipelines 中的 Microsoft 裝載代理程式 已預先安裝數個已發行的 Visual Studio 版本,可協助您建置專案。

  • windows-2022搭配 Visual Studio 2022 使用 Windows Server 2022

您也可以使用 自我裝載代理程式 來執行組建。 如果您有大型存放庫,而且想要避免將原始程式碼下載到每個組建的新機器,這會很有説明。

您的組建會在 自我裝載代理程式上執行。 請確定您已在代理程式上安裝必要的 Visual Studio 版本。

建置多個組態

通常需要在多個組態中建置您的應用程式。 下列步驟擴充上述範例,以四個設定建置應用程式:[Debug, x86], [Debug, x64], [Release, x86], [Release, x64]。

  1. 按一下 [ 變數] 索引 標籤,並修改這些變數:

    • BuildConfiguration = debug, release
    • BuildPlatform = x86, x64
  2. 選取 [ 工作 ],然後按一下 代理程式作業 以變更作業的選項:

    • 選取 [多重組態]。
    • 指定 乘數:BuildConfiguration, BuildPlatform
  3. 如果您有多個組建代理程式,並想要平行建置您的設定/平臺配對,請選取 [ 平行 ]。

還原相依性

您可以使用 NuGet 工作 來安裝和更新 NuGet 套件相依性。 您也可以使用 NuGet 工作,從 Azure Artifacts、NuGet.org 或其他外部或內部 NuGet 存放庫下載 NuGet 套件。

此程式碼會從相同組織中的專案範圍摘要還原方案。

# Restore from a project scoped feed in the same organization
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    vstsFeed: 'my-project/my-project-scoped-feed'
    includeNuGetOrg: false
    restoreSolution: '**/*.sln'