Compartir a través de


Compilación de aplicaciones ASP.NET con .NET Framework

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

En este artículo se describe cómo compilar un proyecto de .NET Framework con Azure Pipelines. Para los proyectos de .NET Core, consulte Compilación, prueba e implementación de aplicaciones de .NET Core.

Crear un proyecto de Azure DevOps.

  1. En la organización o colección de Azure DevOps, seleccione Nuevo proyecto o Crear proyecto.
  2. Escriba un nombre de proyecto.
  3. Seleccione la visibilidad del proyecto.
  4. Seleccione Crear.

Obtención de la aplicación de ejemplo

La aplicación de ejemplo es una solución de Visual Studio que usa .NET 4.8. Para obtener la aplicación, bifurque el repositorio de GitHub en:

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

Creación y compilación de la canalización

Una vez que tenga el código de ejemplo en su propio repositorio, cree una canalización en el proyecto de Azure DevOps mediante las instrucciones de Creación de la primera canalización.

Seleccione la plantilla ASP.NET . Esta opción agrega automáticamente el archivo azure-pipelines.yml con las tareas necesarias para compilar el código en el repositorio de ejemplo. La plantilla incluye la tarea VSTest@2 para ejecutar pruebas. El repositorio de ejemplo no contiene pruebas, por lo que puede quitar la tarea VSTest@2 de la canalización.

La canalización debe tener un aspecto similar al del ejemplo siguiente:

# 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)'

Seleccione Guardar y ejecutar y seleccione Trabajos para ver la canalización en acción.

Para publicar los artefactos de compilación, agregue la siguiente tarea al final del archivo YAML:

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

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

Entorno de compilación

Puede usar Azure Pipelines para compilar los proyectos de .NET Framework sin necesidad de configurar ninguna infraestructura propia. Los agentes hospedados por Microsoft en Azure Pipelines tienen varias versiones publicadas de Visual Studio preinstaladas para ayudarle a compilar los proyectos. Use windows-2022 para Windows Server 2022 con Visual Studio 2022.

También puede usar un agente autohospedado para ejecutar las compilaciones. El uso de un agente autohospedado es útil si tiene un repositorio grande y desea evitar descargar el código fuente en una máquina nueva para cada compilación.

Las compilaciones se ejecutan en un agente autohospedado. Asegúrese de que tiene instalada la versión necesaria de Visual Studio en el agente.

Compilación de varias configuraciones

Es posible que tenga que compilar la aplicación en varias configuraciones. Los pasos siguientes compilan la aplicación de ejemplo en cuatro configuraciones: Debug, x86, Debug, x64, Release, x86y Release, x64.

  1. En la interfaz de usuario de canalización, seleccione la pestaña Variables y modifique las siguientes variables:

    • BuildConfiguration = debug, release
    • BuildPlatform = x86, x64
  2. Seleccione Tareas y, a continuación, seleccione trabajo del agente para cambiar las siguientes opciones para el trabajo:

    • Seleccione Multiconfiguración.
    • Especificar multiplicadores: BuildConfiguration, BuildPlatform
  3. Seleccione Paralelo si tiene varios agentes de compilación y quiere compilar los emparejamientos de configuración y plataforma en paralelo.

Restauración de dependencias

Puede usar la tarea NuGet para instalar y actualizar las dependencias de paquetes NuGet. También puede usar la tarea NuGet para descargar paquetes NuGet desde Azure Artifacts, NuGet.org u otros repositorios de NuGet externos o internos.

En el ejemplo siguiente se restaura una solución desde una fuente con ámbito de proyecto en la misma organización.

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