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

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

注意

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

建立您的第一個管線

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

取得程式碼

在 GitHub 派生下列存放庫:

將此存放庫匯入 Azure DevOps Server 2019 中的 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 儀表板。

  1. 在瀏覽器中,移至 dev.azure.com 並登入。
  2. 選取您的組織。
  3. 選取 [新增專案 ] 或 [在組織中建立第一個專案時建立專案],以建立新的專案
  4. 輸入項目名稱
  5. 選取項目的可見度
  6. 選取 建立
  1. 在瀏覽器中,移至您的 Azure DevOps Server。
  2. 選取您的集合。
  3. 選取 [新增專案 ] 或 [在集合中建立第一個專案時建立專案],以建立新的專案
  4. 輸入項目名稱
  5. 選取項目的可見度
  6. 選取 建立

注意

此案例適用於 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'