금백조의 개발 블로그

[C#]Nuget패키지 복원 오류 해결 방법 "이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오.누락된 파일은...입니다." 본문

Programming Language/C#

[C#]Nuget패키지 복원 오류 해결 방법 "이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오.누락된 파일은...입니다."

금백조 2021. 11. 15. 21:59
반응형

서론

 

C#의 의존성 관리 프로그램인 Nuget을 사용한 솔루션 빌드에서 아래와 같은 에러 메시지가 나타났습니다.

 

"이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 누락된 파일은...입니다."

 

 

문제의 프로젝트는 Nuget으로 Selenium 라이브러리인 Selenium.WebDriver.ChromeDriver 91 버전을 설치했다가 솔루션용 Nuget 패키지 관리를 통해 이전 버전을 지우고 94 버전을 새로 설치한 프로젝트였습니다. 이 소스를 Github에 올리고 다른 컴퓨터에서 clone하여 작업을 진행하려 했는데 Nuget 복원 과정에서 이전 버전으로 인식하는 에러가 발생했습니다.

그래서. csproj 확장자 파일을 열어보니 이전 91 버전 관련된 태그들이 남아있는 것을 확인했습니다.

 

[프로젝트. csproj 확장자 파일 중 일부]

 

 

오늘 포스팅에선 이러한 에러가 났을 때 해결하는 방법에 대해 공유하려고 합니다.

 

본론

 

1. 프로젝트의. csproj 확장자 파일을 코드에디터로 열어서 이전 버전과 관련된 부분을 삭제 후 저장합니다.(관련 Import 태그, Target 태그 삭제)

 

[예시]

 

 

2.visual studio로 프로젝트를 열어서 도구 → NuGet 패키지 관리자 → 패키지 관리자 콘솔 창에서 아래 명령어를 사용하여 패키지를 reinstall 합니다.

 

update-package -reinstall 패키지명

 

[예시]

 

 

3. 빌드를 해주면 처음과 달리 정상적으로 빌드가 됩니다.

 

 

결론

 

솔루션용 Nuget 패키지 관리에서 이전 버전을 삭제하고 새 버전을 설치하면 당연히 이전 버전 내역이 지워질 수 알았는데 아닌가 봅니다... 패키지 복원 에러 메시지는 위와 같은 상황 말고도 다른 상황에서도 많이 발생될 것으로 생각됩니다. 따라서 Nuget으로 버전을 변경할 시 위와 같은 문제가 발생할 수 있다 정도만 알아두고 실제로 문제가 발생했을 때 도움이 되었으면 좋겠습니다.

 

Reference

[[Nuget] 손상된 Reference, Package 복원하기]

https://nsinc.tistory.com/107

 

반응형