프레임 워크“.NETFramework, Version = v4.6.2”에 대한 참조 어셈블리를 찾을 수 없습니다.


112

솔루션을 컴파일하려고 할 때 다음 빌드 오류가 발생합니다.

오류 MSB3644 프레임 워크 ".NETFramework, Version = v4.6.2"에 대한 참조 어셈블리를 찾을 수 없습니다. 이 문제를 해결하려면이 프레임 워크 버전 용 SDK 또는 Targeting Pack을 설치하거나 SDK 또는 Targeting Pack이 설치된 프레임 워크 버전으로 애플리케이션의 대상을 다시 지정하십시오. 어셈블리는 GAC (전역 어셈블리 캐시)에서 확인되며 참조 어셈블리 대신 사용됩니다. 따라서 어셈블리가 의도 한 프레임 워크를 올바르게 대상으로하지 않을 수 있습니다. C : \ RPR \ Dev \ Libraries \ Common \ Common.csproj C : \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets 1111

.NET Framework 4.6.2 SDK와 4.6 Targeting Pack을 설치하려고했지만 이미 설치되어 있다는 오류가 발생했습니다. 또한 Visual Studio 2017 설치를 시도했지만 여전히 동일한 오류가 발생합니다.

어떤 아이디어?


4
4.5.2 개발자 팩 (즉, 4.6.2가 아니라 4.5.2 개발자 팩)을 설치하면이 문제가 해결되는 것을 보았습니다.
Peter Ritchie

나는 4.8 에서이 문제가 있었는데, 어떤 이유로 내 csproj 파일이 4.8.0내부에 있었는데 , 이는 4.8분명히 동일하지 않습니다 .
Jacek Gorgoń

답변:



67

Windows-> 검색-> Visual Studio 설치 프로그램-> 수정-> 개별 구성 요소 및 올바른 버전 확인


9
Visual Studio가 모든 버전을 나열하고 현재 설치 한 항목을 표시하고 다운로드 / 설치를 관리하므로 이것은 깨끗한 솔루션입니다.
olive_tree

1
위의 모든 솔루션을 시도했지만 아무것도 작동하지 않았습니다. 이것은 일을했습니다. 감사합니다
Charlie Seligman 2018 년

내 것은 v4.6.1 (참조 어셈블리)을 요청하고 설치 프로그램을 통해 설치된 v4.6.1 (개발 도구)을 보여줍니다 ... 여전히 무슨 일이 일어나고 있는지 파악하려고합니다. 취소 : 내 문제는 기본적으로 설치된 .NET 프레임 워크가 전혀 없다는 것입니다. 감사합니다.
Xonatron

1
이것은 진지하게 최고의 답변이 될 것입니다!
Tomáš Hübelbauer

이것이 최고의 답변입니다!
Himechi90


12

".NETFramework, Version = v4.7.1"을 제외하고 빌드 할 때 똑같은 오류가 발생했습니다.

여기에서 4.7.1 용 개발자 팩을 다운로드했습니다. https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119

팩은 이러한 프로그램을 대상 컴퓨터 (내 빌드 서버)에 설치했습니다.

  • Microsoft .NET Framework 4.7.1 SDK
  • Microsoft .NET Framework 4.7.1 타겟팅 팩
  • Microsoft .NET Framework 4.7.1 대상 지정 팩 (ENU)

다시 빌드를 시도했을 때 더 이상 오류가 발생하지 않았고 빌드가 성공했습니다.


1
유사한 문제 (빌드 서버 오류). 같은 오류가 있었지만 4.7.1에서는이 문제가 해결되었습니다.
Brendan

4.7.2도 마찬가지입니다.
LosManos

12

2019 년 5 월부터 개발자 팩을 설치하지 않고도 최소한 MSBuild 또는 .NET Core SDK가 설치된 모든 컴퓨터에서 net20 (ne461 포함)까지 net20에서 프로젝트를 빌드 할 수 있습니다.

.NET Core SDK가 컴퓨터에 설치된 경우 프로젝트에 Nuget 패키지 Microsoft.NETFramework.ReferenceAssemblies 를 추가합니다.

    <ItemGroup>
        <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0-preview.2">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>     
    </ItemGroup>

패키지에는 net20에서 net48까지 모든 ReferenceAssemblies가 포함됩니다.

이러한 패키지를 사용하면 MSBuild 또는 .NET Core SDK 이상이 설치된 모든 컴퓨터와 기타 시나리오에서 .NET Framework 프로젝트를 빌드 할 수 있습니다.

자세한 내용 : https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies


훌륭한 솔루션!
Akash Agarwal

완벽 함, 작동 함 <ItemGroup Condition = " '$ (TargetFramework)'== 'net20'또는 '$ (TargetFramework)'== 'net40'">
Stefan Steiger

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.