프로젝트가“.NETFramework, Version = v4.5”프레임 워크를 참조하지 않습니다.


91

VS 2015를 사용하고 있습니다.

프로젝트가 ".NETFramework, Version = 4.5"프레임 워크를 참조하지 않습니다. project.json의 "frameworks"섹션에서 ".NETFramework, Version = 4.5"에 대한 참조를 추가 한 다음 NuGet 복원을 다시 실행합니다.

MVC 레이어에 추가 한 직후 데이터 액세스 및 비즈니스 로직 레이어에서이 오류가 발생합니다. 그때까지는 상황이 괜찮 았지만 무엇이이 오류를 유발했는지 모르겠습니다. 내 project.json은 다음과 같습니다.

{
  "version": "1.0.0-*",
  "description": "foo bar Class Library",
  "authors": [ "foo bar" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

내가 시도한 것은 다음과 같습니다.

  1. 이 답변 에서 볼 수 있듯이 "dotnet5.4"를 "net451"로 바꾸고 삭제합니다 .

결과는 동일한 오류입니다.

  1. "dotnet5.4"를 "net45"로 바꾸고 "net451"은 그대로 둡니다. 이로 인해 새로운 오류가 발생합니다.

project.json에 런타임 섹션이 없습니다. project.json에 ' "runtimes": { "win": {}}'을 추가 한 다음 NuGet 복원을 다시 실행해야합니다.

이 오류가 제안하고 추가 한대로 시도했습니다.

"runtimes": {
    "win":  {}
  },

이 오류가 발생하여 과거로 이동할 수없는 것 같습니다.

project.json은 대상 런타임으로 '승리'를 나열하지 않습니다. project.json의 "runtimes"섹션에 ' "win": {}'을 추가 한 다음 NuGet 복원을 다시 실행해야합니다.

나는 이미 "승리"를 추가했고 이것은 붉은 청어처럼 느껴지기 시작했습니다. project.json을 직접 변경하는 것은 NuGet이 이것을 처리하지 않습니까?


첫 번째의 경우 4.5로 대상 프레임 워크를 프로젝트 설정으로 이동하고 설정
Hirbod Behnam에게

이미 그렇게 설정되어 있습니다.
S. Loveland ECY

1
@ S.LovelandECY이 문제가 해결 되었습니까? 4.5.1, 4.5.2 또는 4.6을 사용하든 동일한 문제가 발생합니다. 모든 프로젝트가 동일한 프레임 워크 버전을 사용하고 있습니다.
티에리

@ S.LovelandECY 당신은 그것과 가장 많이 득표 한 답변 사이의 투표 사이의 차이를 감안할 때 수락 된 답변을 변경하는 것을 고려할 수 있습니다
RJFalconer

답변:


10

나는 실제로 문제를 알아 냈다. 결국 Restore Nuget Packages솔루션 수준에서 를 클릭하고 PCL파일 을 컴파일 한 다음 나머지 솔루션 을 컴파일했습니다 .

도움이 되었기를 바랍니다.


1
이 대답 은 저와 관련이 있습니다.
kovac

186

이 같은 문제가 발생 bin하여 obj폴더 및 폴더 의 내용 뿐만 아니라 .vs솔루션을위한 디렉토리 도 삭제해야했습니다 .


1
.vs가 저에게 문제를 일으켰습니다
Lukas

7
이것은 나를위한 해결책이었습니다!
Riki

9
.vs는 나에게 필요하지 않았습니다. 감사!
geynske006

2
어떻게 감사해야할지 모르겠습니다. 나는 이것을 알아 내려고 거의 한 시간 동안 내 머리를 긁적이었다. 3 개를 모두 삭제하고 부적처럼 작동합니다. +1
tfrascaroli

2
이 문제는 내 로컬 개발 상자에서 GitHub 분기를 전환하여 발생하는 것으로 의심됩니다. 즉, 하나의 브랜치에서 작업하고 컴파일은 저장소의 일부가 아닌 수많은 파일을 생성합니다. 그런 다음 다른 브랜치를 체크 아웃했는데 이러한 비 저장소 파일이 여전히 제자리에 있습니다. 어떻게 든 새로 체크 아웃 된 파일과 충돌합니다.
Phoeniceus Agelaius

127

나는 같은 문제가 있었다-이것은 project.json 대신 .csproj 파일을 사용하는 Visual Studio 2017.3을 사용하여 여전히 발생합니다. 흥미롭게도 오류 메시지에는 여전히 "project.json"이라는 텍스트가 포함되어 있습니다.

이 문제의 원인은 여기에 설명 된대로obj\project.assets.json 정리 중에 제거되지 않는 이전 빌드 의 잠금 파일 또는 파일 (VS 버전에 따라 다름) 인 것으로 보입니다 .

/obj디렉토리를 수동으로 삭제하는 것이 빠른 해결 방법입니다.

"새"프로젝트 (예 : VS 2017에서 만든 .NET Core 또는 netstandard 프로젝트)와 동일한 디렉터리에 "이전"프로젝트 (예 : VS 2015에서 만든 .NET 4.6 프로젝트)가있는 경우 계속해서 싸울 것입니다. 둘 다 ./obj다른 방식으로 dir을 사용합니다 . 여기에 더 많은 정보가 있습니다. .

msbuild 해결 방법은 프로젝트 중 하나가 다른 obj디렉토리를 사용하도록하는 것 입니다. "이전"csproj에 추가했습니다.

<PropertyGroup>
  <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 -->
  <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>

4
이 해결 방법은 VS 2017에서 잘 작동하며 제 시간에 저를 저장했습니다.
MechanicalCoder

2
훌륭한. 훌륭한 설명도 있습니다.
믹 번

1
감사합니다. 문제가되는 모든 "obj"폴더를 삭제하면 내 문제도 해결되었습니다.
Stuart

2
하나님의 축복이 있기를! 피 묻은 project.json 파일이 어디에 있는지 궁금합니다. 삭제 / OBJ는 한
Vishnoo 라스를

1
VS 2019에서도 여전히 문제가 있습니다. 해결해 주셔서 감사합니다!
user2363676

27

불량 project.lock.json이이 문제를 일으키는 것으로 나타났습니다. 파일을 삭제하면 문제가 사라졌습니다.

다음 은 project.lock.json에 대한 몇 가지 문서입니다.

몇 가지 추가 조언은 project.lock.json이 git ignore 파일에서 무시되는지 확인하고 전체 git clean을 시도하는 것입니다. 그래도하기 전에 Git 정리의 의미를 이해했는지 확인하십시오.


2

Mac 용 Visual Studio 7.4 (빌드 1033)로 업데이트 한 후에도 동일한 문제가 발생했습니다.

Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.

json 프로젝트 파일이 없습니다. 여기에있는 팁도 도움이되지 않았기 때문에 타겟 SDK (Nougat 7.1) 외에 최신 Android SDK (Oreo 8.1)를 설치해야하는 어려운 방법을 찾아야했습니다.

여기에 이미지 설명 입력


0

나는 같은 문제가 있지만 vs2017-->tools-->options-->Nugetpacakge manager--->updated적절한 패키지 URL에 적절한 너겟 패키지 리소스를 추가하여 해결했습니다 .

아래 이미지 참조

여기에 이미지 설명 입력

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