Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

C# 컴파일 오류 - Your project is not referencing the ".NETFramework,Version=v3.5" framework.

재현 상황은 이렇습니다.

(제가 테스트한 버전 기준) .NET Framework 4.7.1 프로젝트 생성 후 NuGet으로부터 아무 라이브러리나 참조 추가합니다. 그럼, /obj 폴더에 이와 관련한 파일들이 생성됩니다.

project.assets.json
ConsoleApp1.csproj.nuget.g.props
ConsoleApp1.csproj.nuget.g.targets
ConsoleApp1.csproj.nuget.cache

그다음, 참조 추가했던 그 NuGet 라이브러리를 다시 제거합니다. 이후, 프로젝트의 대상 프레임워크 버전을 3.5로 낮춥니다. 이제부터는 빌드 시 다음과 같은 컴파일 오류가 발생합니다.

Project "F:\ConsoleApp1\ConsoleApp1.csproj" on node 1 (default targets).
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): error : Your project is not referencing the ".NETFramework,Version=v3.5" framework. Add a reference to ".NETFramework,Version=v3.5" in the "frameworks" section of your project.json, and then re-run NuGet restore. [F:\ConsoleApp1\ConsoleApp1.csproj] Done Building Project "F:\ConsoleApp1\ConsoleApp1.csproj" (default targets) -- FAILED.


원인은 project.assets.json 파일에 있던 NuGet 설정이 프레임워크 버전의 변경에 따라 함께 바뀌지 않았기 때문입니다. 참조된 NuGet 라이브러리가 없으므로 관련 파일들도 업데이트하지 않았던 것입니다. 그리고 project.assets.json 파일에 보면 다음과 같이 4.7.1 설정으로 있어,

{
  "version": 3,
  "targets": {
    ".NETFramework,Version=v4.7.1": {},
    ".NETFramework,Version=v4.7.1/win": {},
    ".NETFramework,Version=v4.7.1/win-x64": {},
    ".NETFramework,Version=v4.7.1/win-x86": {}
  },
  "libraries": {},
  "projectFileDependencyGroups": {
    ".NETFramework,Version=v4.7.1": []
  },
  "packageFolders": {
    "C:\\Users\\SeongTae Jeong\\.nuget\\packages\\": {}
  },
  "project": {
    "version": "1.0.0",
    "restore": {
      ...[생략]...
      ],
      "originalTargetFrameworks": [
        "net471"
      ],
      "sources": {
        "https://api.nuget.org/v3/index.json": {},
      },
      "frameworks": {
        "net471": {
          "projectReferences": {}
        }
      }
    },
    ...[생략]...
  }
}

"Your project is not referencing the ".NETFramework,Version=v3.5" framework."라는 컴파일 오류가 발생하게 된 것입니다.

원인을 알았으니 ^^ 해결 방법은 간단합니다. 그냥 다음의 2개 파일을 지우거나,

\obj\
    project.assets.json
    [프로젝트 이름].csproj.nuget.g.props

또는 obj 폴더 자체를 삭제해 주면 됩니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 9/15/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  [184]  185  186  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
411정성태12/16/200620806오류 유형: 21. TFS SP1 설치 관련 오류 (2) - KB919156 패치 이후 TFS 접근 문제
410정성태12/16/200622038오류 유형: 20. TFS SP1 설치 관련 오류 (1) - KB919156 패치
408정성태12/10/200624350Windows: 7. USB 드라이브 내용 암호화
407정성태12/10/200621749오류 유형: 19. Vista 에서의 VS.NET 2005 로 개발한 어셈블리에 대한 서명 확인 오류
406정성태12/10/200626575Windows: 6. IE 7 검색 공급자 - 영한 사전
403정성태12/6/200633731Windows: 5. Vista 와 웹 인증 등록 서비스의 문제 [5]
402정성태12/11/200624709Windows: 4. Vista 설치 후기 [1]
409정성태12/11/200628730    답변글 Windows: 4.1. Vista 설치 후기 - 두 번째 이야기 [3]
396정성태2/13/200731292오류 유형: 18. "Automatic Updates" 서비스 CPU 100% 점유 현상
393정성태11/8/200620870오류 유형: 17. Unable to start debugging - The binding handle is invalid.
371정성태10/23/200620144오류 유형: 16. STS Communication failed.
370정성태11/12/200623967.NET Framework: 75. Windows CardSpace 이야기 (이 글의 내용은 재작성되어질 예정입니다.)
375정성태10/25/200625862    답변글 .NET Framework: 75.1. 개인 발행 카드에 대한 Microsoft 예제 실습(이 글의 내용은 재작성되어질 예정입니다.)
376정성태10/27/200625559    답변글 .NET Framework: 75.2. "Windows CardSpace"와 "인증서 서비스"의 만남(이 글의 내용은 재작성되어질 예정입니다.)
377정성태10/26/200625417    답변글 .NET Framework: 75.3. Managed Card 발행에 대한 Microsoft 예제 실습 (1) - CardWriter (이 글의 내용은 재작성되어질 예정입니다.)
385정성태11/6/200627838    답변글 .NET Framework: 75.4. Managed Card 발행에 대한 Microsoft 예제 실습 (2) - STS 구현 (이 글의 내용은 재작성되어질 예정입니다.) [7]
387정성태11/2/200628686    답변글 .NET Framework: 75.5. Windows CardSpace와 SYSNET 사이트의 만남 (이 글의 내용은 재작성되어질 예정입니다.) [1]
397정성태11/11/200626241    답변글 .NET Framework: 75.6. CardWriter.csproj와 함께 알아보는 인증서 식별 방법(이 글의 내용은 재작성되어질 예정입니다.)
398정성태11/12/200624684    답변글 .NET Framework: 75.7. 카드에 암호 거는 방법(이 글의 내용은 재작성되어질 예정입니다.)
399정성태11/12/200626892    답변글 .NET Framework: 75.8. 인증서/스마트 카드에 기반한 Managed Card - STS 구현(이 글의 내용은 재작성되어질 예정입니다.) [5]
369정성태10/22/200622342오류 유형: 15. 자동 업데이트 실패
367정성태10/22/200638250Windows: 3. IIS 7.0 다중 바인딩 설정하는 방법 [1]
365정성태10/21/200621667Windows: 2. 서버(build 5600)에 IIS 7.0 서비스와 .NET 3.0 설치 방법
359정성태10/17/200617877오류 유형: 14. VS.NET 빌드 오류 - FxCopCmd.exe returned error code 65.
358정성태10/17/200623170오류 유형: 13. WSE 3.0 서비스 관련 WSE101 오류 / Destination Unreachable
357정성태12/1/200625429.NET Framework: 74. WCF 이야기 [4]
... 181  182  183  [184]  185  186  187  188  189  190  191  192  193  194  195  ...