여러 프레임 워크를 사용할 때 .Net 5에 대한 Azure Devops 빌드 실패

Nov 16 2020

다음 프레임 워크를 사용하여 빌드하는 프로젝트가 있습니다.

<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>

이것은 내 로컬 컴퓨터에서 잘 컴파일되지만 Azure로 푸시하면 실패합니다.

YAML 파일에 다음이있는 경우 :

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

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration $(buildConfiguration)'

그런 다음 얻을 :

## [오류] C : \ Program Files \ dotnet \ sdk \ 3.1.403 \ Microsoft.Common.CurrentVersion.targets (1177,5) : 오류 MSB3644 : .NETFramework, Version = v5.0에 대한 참조 어셈블리를 찾을 수 없습니다. . 이 문제를 해결하려면이 프레임 워크 버전 용 개발자 팩 (SDK / 타겟팅 팩)을 설치하거나 애플리케이션의 대상을 다시 지정하십시오. .NET Framework 개발자 팩은 다음 사이트에서 다운로드 할 수 있습니다.https://aka.ms/msbuild/developerpacks

그리고 내가 시도하면

- task: VSBuild@1
  displayName: 'Build all'
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)' configuration: '$(buildConfiguration)'
    maximumCpuCount: true

나는 얻다:

## [오류] C : \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Current \ Bin \ Microsoft.Common.CurrentVersion.targets (1177,5) : 오류 MSB3644 : .NETFramework에 대한 참조 어셈블리 , 버전 = v5.0을 찾을 수 없습니다. 이 문제를 해결하려면이 프레임 워크 버전 용 개발자 팩 (SDK / 타겟팅 팩)을 설치하거나 애플리케이션의 대상을 다시 지정하십시오. .NET Framework 개발자 팩은 다음 사이트에서 다운로드 할 수 있습니다.https://aka.ms/msbuild/developerpacks

  1. 개발자 팩 문서는 이전 .Net Framework만을 참조하므로 관련성이 없거나 구식이라고 생각합니다.
  2. .Net Core 3.1에 대해 .Net 5를 변경하면 잘 작동합니다. <TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp3.1</TargetFrameworks>

답변

2 JaneMa-MSFT Nov 18 2020 at 10:10

프로젝트가 성공적으로 빌드되지 않는 이유는 Microsoft 호스팅 에이전트에 .NET 5.0 SDK가 설치되어 있지 않기 때문입니다.

Use.NET Core Task를 사용하여 .NET 5.0 SDK를 다운로드 할 수 있습니다 .

- task: UseDotNet@2
inputs:
packageType: 'sdk'
Version: '{version}'
includePreviewVersions: {true/false}

이 작업은 네트워크에서 특정 버전의 .Net SDK를 다운로드하여 PATH에 추가 할 수 있습니다.

또한 프로젝트에서 여러 버전의 .NET을 사용하고 있으므로이 작업을 사용하여 다음 작업에 사용할 .NET 버전을 지정할 수 있습니다.

즉,이 작업에는 두 가지 기능이 있습니다.

  1. 설치되지 않은 특정 SDK 버전을 다운로드하십시오.
  2. 다음 작업에 사용할 SDK 버전을 지정합니다.
1 DmitriyGrebennikov Nov 16 2020 at 17:01

빌드 에이전트 머신에 문제가 있다고 생각합니다.

cloud azure devops 를 사용하는 경우 빌드 머신을 업데이트 할 때까지 기다려야합니다.

온- 프레미스 Azure devops 를 사용하는 경우 빌드 머신을 직접 업데이트 해보세요.