使用 .NET Framework 生成 ASP.NET 应用

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

本文介绍如何使用 Azure Pipelines 生成 .NET Framework 项目。 有关 .NET Core 项目,请参阅 生成、测试和部署 .NET Core 应用

创建 Azure DevOps 项目

  1. 在 Azure DevOps 组织或集合中,选择“新建项目”或创建项目”。
  2. 输入项目名称
  3. 选择项目的可见性
  4. 选择创建

获取示例应用

示例应用是使用 .NET 4.8 的 Visual Studio 解决方案。 若要获取应用,请在以下位置创建 GitHub 存储库分支:

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

创建和生成管道

在自己的存储库中有示例代码后,请使用“创建第一个管道”中的 说明在 Azure DevOps 项目中创建管道

选择 ASP.NET 模板。 此选项会自动将azure-pipelines.yml文件添加到示例存储库中,其中包含生成代码所需的任务。 该模板包括运行测试的VSTest@2任务。 示例存储库不包含测试,因此可以从管道中删除VSTest@2任务。

管道应如以下示例所示:

# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

trigger:
- main

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

trigger:
- main

pool: 
  name: default

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

选择“保存并运行”,然后选择“作业以查看管道的操作。

若要发布生成项目,请将以下任务添加到 YAML 文件的末尾:

- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Pipeline.Workspace)'
    artifact: 'myartifact'
    publishLocation: 'pipeline'

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop

生成环境

可以使用 Azure Pipelines 生成 .NET Framework 项目,而无需设置自己的任何基础结构。 Azure Pipelines 中的Microsoft托管代理预安装了多个版本的 Visual Studio,可帮助你生成项目。 用于 windows-2022 具有 Visual Studio 2022 的 Windows Server 2022。

还可以使用自托管代理来运行生成。 如果拥有大型存储库,并且希望避免将源代码下载到新计算机进行每个生成,则使用自承载代理非常有用。

生成将在自托管代理上运行。 请确保已在代理上安装必要的 Visual Studio 版本。

生成多个配置

可能需要在多个配置中生成应用。 以下步骤基于四种配置生成示例应用: Debug, x86Debug, x64Release, x86Release, x64

  1. 在管道 UI 中,选择 “变量 ”选项卡并修改以下变量:

    • BuildConfiguration = debug, release
    • BuildPlatform = x86, x64
  2. 选择“ 任务,然后选择代理作业 以更改作业的以下选项:

    • 选择“多配置”。
    • 指定 乘数: BuildConfiguration, BuildPlatform
  3. 如果有多个生成代理,希望并行生成配置/平台配对,请选择“并行”。

还原依赖项

可以使用 NuGet 任务来安装和更新 NuGet 包依赖项。 还可以使用 NuGet 任务从 Azure Artifacts、NuGet.org 或其他外部或内部 NuGet 存储库下载 NuGet 包。

以下示例从同一组织中的项目范围的源还原解决方案。

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    vstsFeed: 'my-project/my-project-scoped-feed'
    includeNuGetOrg: false
    restoreSolution: '**/*.sln'