.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 프로젝트 만들기
- Azure DevOps 조직 또는 컬렉션에서 새 프로젝트 또는 프로젝트 만들기를 선택합니다.
- 프로젝트 이름을 입력합니다.
- 프로젝트의 표시 유형을 선택합니다.
- 만들기를 실행합니다.
샘플 앱 가져오기
샘플 앱은 .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가 미리 설치되어 있습니다. Visual Studio 2022에서 Windows Server 2022에 사용합니다 windows-2022
.
자체 호스팅 에이전트를 사용하여 빌드를 실행할 수도 있습니다. 자체 호스팅 에이전트를 사용하는 것은 큰 리포지토리가 있고 모든 빌드에 대한 새 컴퓨터에 소스 코드를 다운로드하지 않으려는 경우에 유용합니다.
빌드는 자체 호스팅 에이전트에서 실행됩니다. 에이전트에 필요한 버전의 Visual Studio가 설치되어 있는지 확인합니다.
여러 구성 빌드
여러 구성에서 앱을 빌드해야 할 수도 있습니다. 다음 단계에서는 네 가지 Debug, x86
구성에 Debug, x64
Release, x86
Release, x64
대한 예제 앱을 빌드합니다.
파이프라인 UI에서 변수 탭을 선택하고 다음 변수를 수정합니다.
BuildConfiguration
=debug, release
BuildPlatform
=x86, x64
작업을 선택한 다음 에이전트 작업을 선택하여 작업에 대한 다음 옵션을 변경합니다.
- 다중 구성을 선택합니다.
- 승수를 지정 합니다.
BuildConfiguration, BuildPlatform
여러 빌드 에이전트가 있고 구성/플랫폼 페어링을 병렬로 빌드하려는 경우 병렬을 선택합니다.
종속성 복원
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'