使用 .NET Framework 建置 ASP.NET 應用程式
Azure DevOps Services |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018
注意
在 Microsoft Team Foundation Server (TFS) 2018 和舊版中,組建和發行管線稱為定義、執行稱為組建、服務連線稱為服務端點、階段稱為環境,而作業稱為階段。
注意
本文著重于使用 Azure Pipelines 建置.NET Framework專案。 如需 .NET Core 專案的協助,請參閱 .NET Core。
建立您的第一個管線
您不熟悉Azure Pipelines嗎? 如果是,建議您先嘗試本節,再繼續進行其他區段。
取得程式碼
GitHub分叉下列存放庫:
將此存放庫匯入至 2019 Azure DevOps Server Git 存放庫:
將此存放庫匯入 TFS 中的 Git 存放庫:
https://github.com/Microsoft/devops-project-samples.git
範例存放庫包含數個不同的專案,而本文的範例應用程式位於:
https://github.com/Microsoft/devops-project-samples
您將在 中使用 /dotnet/aspnet/webapp/
程式碼。 您的 azure-pipelines.yml
檔案必須從 dotnet/aspnet/webapp/Application
資料夾中執行,組建才能順利完成。
範例應用程式是具有兩個專案的Visual Studio解決方案:
- 以 .NET Framework 4.5 為目標的 ASP.NET Web 應用程式專案
- 單元測試專案
登入Azure Pipelines
登入Azure Pipelines。 登入之後,瀏覽器會前往 https://dev.azure.com/my-organization-name
並顯示您的Azure DevOps儀表板。
在您選取的組織內,建立 專案。 如果您的組織中沒有任何專案,您會看到建立 專案以開始使用 畫面。 否則,請選取儀表板右上角的 [新增Project] 按鈕。
注意
此案例適用于 TFS,但下列一些指示可能不符合您使用的 TFS 版本。 此外,您可能需要設定自我裝載代理程式,也可能安裝軟體。 如果您是新的使用者,請先使用免費的Azure DevOps組織來試用此程式,可能會有更好的學習體驗。 然後將此頁面左上角的選取器從 Team Foundation Server 變更為Azure DevOps。
在您擁有自己的存放庫中的範例程式碼之後,請使用建立第一個管線中的指示建立管線,然後選取ASP.NET範本。 這會自動新增在範例存放庫中建置程式碼所需的工作。
儲存管線並將組建排入佇列,以查看其運作情形。
建置環境
您可以使用Azure Pipelines來建置.NET Framework專案,而不需要自行設定任何基礎結構。 Azure Pipelines中的Microsoft 裝載代理程式已安裝數個已發行版本本的 Visual Studio,可協助您建置專案。
- 使用
windows-2019
Windows Server 2019 搭配 Visual Studio 2019
您也可以使用 自我裝載代理程式 來執行組建。 如果您有大型存放庫,而且想要避免將原始程式碼下載到每個組建的全新電腦,這會很有説明。
您的組建會在 自我裝載代理程式上執行。 請確定您已在代理程式上安裝必要的Visual Studio版本。
建置多個組態
通常需要在多個組態中建置您的應用程式。 下列步驟會擴充上述範例,以四個組態建置應用程式:[Debug、x86]、[Debug、x64]、[Release、x86]、[Release、x64]。
按一下 [ 變數] 索引 標籤並修改這些變數:
BuildConfiguration
=debug, release
BuildPlatform
=x86, x64
選取 [ 工作 ],然後按一下 代理程式作業 以變更作業的選項:
- 選取 [多重組態]。
- 指定 乘數:
BuildConfiguration, BuildPlatform
如果您有多個組建代理程式,而且想要平行建置組態/平臺配對,請選取 [ 平行 ]。
還原相依性
您可以使用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'