[C#] 파일 또는 어셈블리 ‘System.Net.Http.Formatting’또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 경로를 찾을 수 없습니다

연습용으로 사용하는 작은 MVC 앱이 있지만 디버깅하려고 할 때마다 오류가 발생합니다.

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

나는 구글 검색했지만 해결책을 찾을 수 없습니다. .NET 4.5를 사용하고 있습니다.

.Net 4.5를 사용하고 있기 때문에 DLL 파일이 될 수 없습니다.



답변

이러한 NuGet 오류가 발생할 때마다 일반적으로 다음 단계를 수행합니다.

  1. Windows 탐색기에서 패키지 폴더로 이동하여 삭제하십시오.
  2. Visual Studio를 열고 도구 > 라이브러리 패키지 관리자 > 패키지 관리자 설정 으로 이동 한 다음 왼쪽의 패키지 관리자 항목 아래에 “패키지 캐시 지우기”버튼이 있습니다. 이 버튼을 클릭하고 “빌드 중 NuGet이 누락 된 패키지를 다운로드하도록 허용”확인란이 선택되어 있는지 확인하십시오.
  3. 솔루션 청소
  4. 그런 다음 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 복원을 활성화하십시오.
  5. 솔루션 구축
  6. Visual Studio를 다시 시작하십시오.

이 모든 단계를 수행하면 거의 항상 MVC 프로그램에 필요한 모든 패키지와 dll이 복원됩니다.


편집 >>>

Visual Studio 2013 이상에서는 2) 단계를 읽어야합니다.

  1. Visual Studio를 열고 도구 > 옵션 > NuGet 패키지 관리자 로 이동 한 다음 오른쪽에 “패키지 캐시 지우기 단추”가 있습니다. 이 단추를 클릭하고 “누락 된 패키지를 다운로드 할 수 있도록 허용”및 “Visual Studio에서 빌드 중 누락 된 패키지를 자동으로 확인”확인란이 선택되어 있는지 확인하십시오.

답변

  • 에 대한 모든 코드 참조를 제거하십시오. System.Net.*

  • 패키지 창에서

    Install-Package Microsoft.AspNet.WebApi.Client

  • 프로젝트 정리 및 재 구축


답변

여분을 찾았습니다

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

내 web.config에서. 작동하도록 제거했습니다. 다른 패키지를 설치 한 다음 제거하여 문제가 발생했습니다.


답변

user3919888이 올바른 방향으로 나를 가리 켰지 만 Update-Package -reinstall Microsoft.AspNet.WebApi.Client패키지 관리자 콘솔에서 실행해야했습니다 . 기본 설치 자체는 문제를 인식하지 못하지만 패키지가 이미 설치되어 있고 덮어 쓰지 않음을 인식합니다.

나는이 답변을 게시하고 있습니다.


답변

다음 줄을 제거하면 web.config문제 가 해결되었습니다. 이 프로젝트에서는 WebApi 구성 요소를 사용하지 않았습니다. 따라서 다른 사람들에게는이 솔루션이 예상대로 작동하지 않을 수 있습니다.

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>


답변

.NET Framework 프로젝트 와 함께 .NET Standard 프로젝트 를 사용하는 사용자 :

.NET Standard 방식으로 .NET Standard 프로젝트에 포함 된 패키지는 다른 .NET Core 및 .NET Standard 프로젝트에서 올바르게 사용됩니다.

.NET Framework 방식으로, .NET Framework (MVC) 프로젝트에서 .NET 표준 프로젝트를 참조하는 경우 동일한 너겟 패키지를 수동으로 다운로드하여 설치해야합니다.

그래서 내 질문에 대한 대답 은 필요한 Microsoft.AspNet.WebApi.Client곳에서 .NET 표준 프로젝트를 사용하는 웹 프로젝트 (.NET Framework)에서 다운로드하여 설치해야 한다는 것입니다 Microsoft.AspNet.WebApi.Client. 사실, 나는 이미 이것을 설치했지만 버전 차이가있었습니다.

다른 사람들이 볼 수 있도록이 답변을 추가하면 OP의 질문에 직접 답변하지 않을 수도 있지만 가장 인기있는 답변 대신 먼저 확인하여 시간을 절약했습니다.


답변

  1. 에 대한 모든 코드 참조를 제거하십시오. System.Net.*
  2. 제거 : 패키지 Microsoft.AspNet.WebApi및 해당 종속성
  3. 모두 다시 설치 : 패키지 Microsoft.AspNet.WebApi및 해당 종속성
  4. 프로젝트 정리 및 재 구축