언어

진단 코드 MSB3644

이 문서에서는 MSB3644 오류 코드에 대해 설명합니다.

메시지 내용

MSB3644: The reference assemblies for 'value' were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

설명

이 오류는 프로젝트에서 요청하는 .NET 버전에 대한 .NET 참조 어셈블리를 찾을 수 없는 경우에 발생합니다.

프로젝트에서 인식되거나 설치되지 않은 어셈블리 버전을 요청하는 경우 이 오류가 표시될 수 있습니다. 필수 .NET 버전의 참조 어셈블리 폴더가 손상되었거나 없는 경우에도 오류가 발생합니다.

해결 방법

프로젝트가 Microsoft.NETFramework.ReferenceAssemblies NuGet 패키지를 참조하는지 확인합니다. 자세한 내용은 .NET Framework 대상 팩 NuGet 패키지를 참조하세요.

프로젝트 파일 프레임워크 식별자 및 버전

프로젝트 파일의 TargetFramework, TargetFrameworks, TargetFrameworkIdentifier, TargetFrameworkVersion 속성에서 맞춤법 또는 오타 오류를 확인하세요.

예를 들어 프로젝트 파일의 다음 코드로 인해 MSB3644 오류가 발생합니다.

    <PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''">
        <TargetFrameworkIdentifier>.NETCORAPP</TargetFrameworkIdentifier>
        <TargetFrameworkVersion>3.1</TargetFrameworkVersion>
    </PropertyGroup>

속성의 철자가 TargetFrameworkIdentifier 틀렸습니다. 올바른 값은 .NETCOREAPP이며 E이 누락됐습니다, 마치 CORE에서와 같습니다.

속성을 사용하여 여러 대상 프레임워크의 TargetFrameworks 값을 지정하는 경우 값을 세미콜론(;)으로 구분해야 합니다. 쉼표(,)와 같은 잘못된 구분 기호를 사용하면 시스템에서 MSB3644 오류가 생성됩니다.

다음은 올바른 구문의 예입니다.

    <PropertyGroup>
            <TargetFrameworks>net6.0;net5.0;netcoreapp3.1</TargetFrameworks>
    </PropertyGroup>

참조 어셈블리 폴더

, TargetFramework및 속성에서 요청된 TargetFrameworkIdentifier프레임워크 식별자 및 TargetFrameworkVersion 버전을 확인하고 로컬 드라이브에서 해당 버전에 대한 참조 어셈블리 폴더를 찾습니다.

Windows에서 .NET Core용 32비트 참조 어셈블리는 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\에 있어야 합니다. NETCore 폴더입니다. 64비트인 경우 .NET Framework 참조 어셈블리 폴더는 C:\Program Files\Reference Assemblies\Microsoft\Framework\에 있어야 합니다. NETFramework 경로입니다.

프로젝트에 필요한 버전의 폴더가 없거나 손상된 것으로 표시되는 경우 어셈블리 버전을 설치하거나 다시 설치해야 할 수 있습니다. .NET 다운로드에서 필요한 버전을 설치할 수 있습니다. 자세한 내용은 참조 어셈블리를 참조하세요.

적용 대상

MSBuild의 모든 버전