다음을 통해 공유


.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 PipelinesMicrosoft 호스팅 에이전트에는 프로젝트를 빌드하는 데 도움이 되도록 여러 버전의 Visual Studio가 미리 설치되어 있습니다. Visual Studio 2022에서 Windows Server 2022에 사용합니다 windows-2022 .

자체 호스팅 에이전트사용하여 빌드를 실행할 수도 있습니다. 자체 호스팅 에이전트를 사용하는 것은 큰 리포지토리가 있고 모든 빌드에 대한 새 컴퓨터에 소스 코드를 다운로드하지 않으려는 경우에 유용합니다.

빌드는 자체 호스팅 에이전트에서 실행됩니다. 에이전트에 필요한 버전의 Visual Studio가 설치되어 있는지 확인합니다.

여러 구성 빌드

여러 구성에서 앱을 빌드해야 할 수도 있습니다. 다음 단계에서는 네 가지 Debug, x86구성에 Debug, 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'