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


158

연습용으로 사용하는 작은 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 파일이 될 수 없습니다.



대신 내가 'NuGetCmdletUnhandledException, NuGet.PowerShell.Commands.InstallPackageCommand'말 패키지 관리자에 오류가 좀 .. 나는 그것을 시도하고 작동하지 않았다
노리스

답변:


185

이러한 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에서 빌드 중 누락 된 패키지를 자동으로 확인"확인란이 선택되어 있는지 확인하십시오.

7
이것은 효과가 있었다 ... 문제 해결 ... 감사 Jordan_Walters ... 나는 투표 할 충분한 담당자가 없습니다 ... 그렇지 않으면 당신의 도움이 크게 평가되었습니다
Norris

10
좋은 조언이지만 "파일 또는 어셈블리 'System.Net.Http.Formatting'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 경로를 찾을 수 없습니다"와 관련된 문제를 해결하지 못했습니다. 나를 위해 도구 / NuGet 패키지 관리자 / 패키지 관리자 콘솔로 이동 한 다음 "Update-Package -ProjectName MyProject -reinstall"로 이동해야했습니다. 모든 것이 고정되었습니다!
GeoMac

3
@YuraZaletskyy $ {SolutionDir} / packages /에 있다고 생각합니다. 즉 루트 솔루션 폴더입니다.
jakejgordon

1
훌륭한 팁, 감사합니다. 정말 도움이되었습니다. 이후 버전의 Visual Studio를 반영하기 위해 몇 가지 추가 정보를 추가하지 않았 으면 좋겠습니다.
Sheridan

1
위의 내용을 따랐지만 오류가 계속 발생했습니다. 수동으로 dll 버전을 보았고 web.config 파일을 확인했을 때 중복 항목이 있었으므로 dll 버전과 일치하는 단일 항목을 남겨두면 모든 것이 작동합니다.
JazziJeff 2016 년

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

  • 패키지 창에서

    Install-Package Microsoft.AspNet.WebApi.Client

  • 프로젝트 정리 및 재 구축


2
방금이 문제에 부딪 쳤고 최신 NuGet 패키지 버전의 Microsoft.AspNet.WebApi.Client를 설치 한 후 참조 목록에서 System.Net.Http.Formatting을 보았습니다.
ewomack

나는 다른 모든 것을 시도했다. 이것은 나를 위해 일한 유일한 것입니다.
Timothy Kanski

나를 위해 일했다. 올바른 버전을 설치하십시오.
CrusherJoe

1
내 업데이트 후이 솔루션은 일 Web.Config bindingRedirect을 위해 System.Net.Http.Formatting그리고 System.Web.Http위의 명령에 의해 설치된 새로운 하나가에서 갔다 즉 ... <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/><bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Serj 세이건

그렇다면 우리 중 많은 사람들이 단순히 Microsoft.AspNet.WebApi.Client NuGet 패키지를 놓친 것입니까?
carlin.scott

27

여분을 찾았습니다

  <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에서. 작동하도록 제거했습니다. 다른 패키지를 설치 한 다음 제거하여 문제가 발생했습니다.


공개 토큰이 어떤 버전인지 어떻게 알 수 있습니까? b03f5f7f11d50a3a
eran otzap

패키지 관리자 콘솔 명령에 의해 자동으로 추가됩니다 : Add-BindingRedirect *
Simon Hughes

18

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

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


16

다음 줄을 제거하면 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>

공개 토큰이 어떤 버전인지 어떻게 알 수 있습니까?
eran otzap

아시다시피 버전에 관계없이 모든 Microsoft dll의 공개 토큰입니다.
Mahmoud Moravej

재미있게도이 줄을 추가하면 도움이되었습니다.
Krzysztof Madej 2016 년

그것은 나에게도 문제를 해결했다.
Vishal

이것은 내 문제도 해결했습니다. 오래된 웹 사이트 프로젝트를 웹 응용 프로그램으로 변환했습니다. 설치된 NuGet 패키지는 5.2.3 인 반면 Web.config 파일은 버전 5.2.7을 참조하고있었습니다. Web.config에서 이것을 삭제하면 오류가 수정되었습니다.
Cesar Daniel

9

.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
.NET Core를 사용하고 있으며 gingter.org/2018/07/26/… 에서 HttpClient를 조롱하는 가이드를 찾았 습니다 . 이 가이드를 따르면 OP의 질문에 설명 된 문제가있었습니다. 그리고 당신은 해결책을 수정했습니다 :)
Thorkil Værge

이것이 나를 위해 일한 것입니다. 권장되는 접근 방식을 시도하여 모든 패키지를 제거하고 복원했지만 결국 Nuget을 사용하여 Microsoft.AspNet.WebApi.Client를 설치하여 필요한 버전인지 확인한 후 모든 것이 좋았습니다.
TH Todorov

좋은 답변-나는 모든 것을 프레임 워크로 다시 옮겨야한다고 생각하기 시작했습니다!
d219

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

감사합니다! 당신은 이틀간의 절박한 시도 후에 나를 구했습니다. 거의 나를 미치게 만들었습니다.
Marek Dorda

5

GeoMac 의 의견에서 처음 제안하고 NuGet의 문서에 문서화 된 것처럼 다른 답변이 효과가 없을 때 다음이 도움이되었습니다.

도구 / NuGet 패키지 관리자 / 패키지 관리자 콘솔

Update-Package -ProjectName MyProjectName -reinstall

Visual Studio 2015가 있습니다. 이것이 바로해야 할 일입니다. 즉시 수정했습니다.
Damian C

3

제 경우에는 위의 해결책 중 어느 것도 효과가 없었습니다. 참조를 마우스 오른쪽 버튼으로 클릭하여 해결했습니다.

System.Net.Http.Formatting

Visual Studio에서 복사 로컬 속성 을 true로 설정하십시오 .

나는 이것이 어떻게 든 유용하기를 바랍니다.


2
내가
그랬는데

2

나를 위해이 성가신 오류를 해결 한 것은 Visual Studio를 닫고 다시 여는 것입니다. 그런 다음 솔루션을 다시 빌드하면 모두 다시 작동합니다. 쓰레기 답변에 대해 미안하지만, 그것은 나를 위해 그것을 해결했기 때문에 답변의 가치가 있다고 생각합니다.


1
이것은 나도 걸린 모든했다
스티브 베르 메울 렌을

1

나를 위해 그것은 간단했다

  1. Microsoft.AspNet.WebApi.ClientWindows 탐색기의 패키지 폴더에서 삭제
  2. 도구> NuGet 패키지 관리자> 패키지 관리자 콘솔을여십시오.
  3. "복원"버튼을 클릭하십시오


1

나는 같은 문제에 직면했다

System.Net.Http.Formatting

webconfig 안에 작성된 버전은 5.0.3이지만 bin 폴더 안에 라이브러리 System.Net.Http.Formatting dll 버전은 4.0.2였습니다.

그래서 난 그냥 빈 안에 주어진 같은 것으로 교체

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

이 깨끗한 프로젝트를 수행하고 빌드하십시오.


0

속성 대화 상자에서 라이브러리 참조를 "로컬 복사 = True"로 설정해야합니다. Visual Studio에서 "참조"를 클릭 한 다음 누락 된 참조를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴 클릭 속성에서 로컬 복사 설정이 표시됩니다.


0

나를 위해 WebApi.config에 몇 줄을 추가하면 새 nuget 패키지를 업데이트 한 후 작동하지 않습니다.

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

네임 스페이스를 추가하는 것을 잊지 마십시오 :

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;

솔루션 파일에 마우스 오른쪽 버튼을 클릭하여 프로젝트 종속성을 확인 있는지 확인하고 일반적인 속성 - 아래> 프로젝트 종속성 오류가 발생합니다 프로젝트를 확인하거나 솔루션이 종속 된 프로젝트 이름을 확인하십시오
인 Ashish 비키

0

이 문제를 해결하기 위해 한 것은

  1. NuGet 패키지 관리자로 이동하십시오.

  2. 왼쪽 패널에서 업데이트를 선택하십시오.

  3. WebApi 구성 요소 업데이트

  4. 그 후 프로젝트는 오류없이 실행되었습니다.


0

VS2019 : 패키지 복원 섹션의 도구-> Nuget 패키지 관리자-> 패키지 관리자 설정-> 두 가지 옵션을 확인하십시오. 그런 다음 프로젝트 패키지 폴더로 이동하여 내부의 모든 하위 폴더를 삭제하십시오 (더 이상 오류가 발생하지 않음). 솔루션을 다시 빌드하면 Nuget은 모든 패키지를 다시 다운로드하고 참조없이 프로젝트를 실행해야합니다.


0

VS 2019에서 ASP.NET 프로젝트에 문제가있었습니다.

또 다른 증상은 일부 참조 (System.Web.Http)가 프로젝트 참조 목록 (Solution Explorer)에서 결함으로 표시되었다는 것입니다.

내 해결책 :

  1. 프로젝트-> 참조에서 잘못된 참조를 삭제하십시오 (오른쪽 클릭, ...)
  2. 짓다
  3. 빌드 오류 "유형 또는 네임 스페이스 이름 [...]을 (를) 찾을 수 없음"으로 이동하십시오.
  4. "잠재적 인 수정 사항 표시"-> 패키지 설치를 사용하십시오.

원인 :

csproj 파일의 차이점을 보면 문제원인을 알 수 있습니다 . 누군가 Windows 프로그램 파일 폴더에서 DLL을 참조 할 수있었습니다!

<Reference Include="System.Web.Http">
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.