파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.넷. http.형식 지정' 또는 종속 항목 중 하나입니다.시스템이 지정된 경로를 찾을 수 없습니다.
연습을 위해 사용하는 작은 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를 사용합니다.
사용하고 있기 때문에 DLL 파일이 될 수 없습니다.넷 4.5.
이러한 NuGet 오류가 발생할 때마다 보통 다음 단계를 수행합니다.
- Windows 탐색기의 패키지 폴더로 이동하여 삭제합니다.
- Visual Studio를 열고 Tools > Library Package Manager > Package Manager Settings로 이동하면 왼쪽의 Package Manager 항목 아래에 "Clear Package Cache" 버튼이 있습니다.이 단추를 클릭하고 "빌드 중에 NuGet에서 누락된 패키지를 다운로드할 수 있도록 허용" 확인란이 선택되어 있는지 확인합니다.
- 용액을 세척
- 그런 다음 솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 복원을 활성화합니다.
- 솔루션 구축
- Visual Studio 다시 시작
이러한 모든 단계를 수행하면 거의 항상 MVC 프로그램에 필요한 모든 패키지와 DLL이 복원됩니다.
편집 >>>
Visual Studio 2013 이상의 경우, 2단계)는 다음을 읽어야 합니다.
- Visual Studio를 열고 Tools > Options > NuGet Package Manager로 이동하면 오른쪽에 "Clear Package Cache 버튼"이 있습니다.이 단추를 클릭하고 "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>
내 웹.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 Standard 프로젝트를 .NET Framework 프로젝트와 함께 사용하는 경우:
.NET Standard 방식으로 .NET Standard 프로젝트에 포함된 패키지는 다른 .NET Core 및 .NET Standard 프로젝트에서 올바르게 사용됩니다.
.NET Framework 방식에서는 .NET Framework(MVC) 프로젝트의 .NET Standard 프로젝트를 참조하는 경우 동일한 nuget 패키지를 수동으로 다운로드하여 설치해야 합니다.
제 은 제가 다운받아서 설치해야 한다는 것이었습니다.Microsoft.AspNet.WebApi.Client
웹 Framework에서 .NET Standard는 .NET Standard를 사용합니다.NET Framework) 문서Microsoft.AspNet.WebApi.Client
필니다합요. 사실 되어 있었지만 사실, 저는 이것을 이미 설치했지만 버전 차이가 있었습니다.
저는 다른 사람들이 볼 수 있도록 이 답변을 추가할 뿐입니다. OP의 질문에 직접 답변하지 않을 수도 있지만, 상위 투표 답변 대신 먼저 확인함으로써 시간을 절약할 수 있었습니다.
원래 GeoMac의 코멘트에서 제안되었고 NuGet의 문서에 문서화된 것처럼, 다른 어떤 답변도 효과가 없을 때 다음과 같은 것이 저에게 효과가 있었습니다.
도구 / NuGet 패키지 관리자 / 패키지 관리자 콘솔
Update-Package -ProjectName MyProjectName -reinstall
- 에 대한 모든 코드 참조를 제거합니다.
System.Net.*
- 거: 패지
Microsoft.AspNet.WebApi
그리고 그것의 종속성. - 다시 설치: 모다설: 패지키
Microsoft.AspNet.WebApi
그리고 그것의 종속성. - 프로젝트 정리 및 재구축
저에게 이 문제는 Web.config(System)에 어셈블리 바인딩 항목이 누락되어 발생했습니다.넷. http.Microsoft를 추가한 후 포맷).AsNet.WebApi.클라이언트 패키지.
마이크로소프트에 확인했습니다.AsNet.WebApi.클라이언트 버전이 있고 다음 바인딩을 Web.config에 추가했습니다.
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
WebApi에 따라 다릅니다.가지고 있는 클라이언트 버전은 바인딩 리디렉션에서 버전을 변경합니다.
저의 경우, 위의 해결책 중 어느 것도 작동하지 않았습니다.참조를 마우스 오른쪽 버튼으로 클릭하여 해결했습니다.
시스템.넷.Http.포맷
로컬 복사 속성을 true로 설정합니다.
나는 이것이 어떻게든 유용하기를 바랍니다.
나에게 그것은 매우 간단했습니다.
- 제
Microsoft.AspNet.WebApi.Client
- Open Tools > NuGet Package Manager > Package Manager 콘솔
- "복원" 버튼을 클릭합니다.
이 성가신 오류를 해결한 것은 Visual Studio를 닫고 다시 여는 것입니다.그런 다음 솔루션을 다시 구축하면 모든 것이 다시 작동합니다.엉터리 답변은 미안하지만, 나를 위해 해결해 주었기 때문에 답할 가치가 있다고 생각합니다.
저도 같은 문제에 직면했습니다.
시스템.넷.Http.포맷
webconfig 내부에 작성된 버전은 5.0.3이지만 bin 폴더 내부에는 System 라이브러리가 있습니다.넷. http.dll 버전 포맷은 4.0.2였습니다.
그래서 나는 그냥 안에 있는 빈과 같은 것으로 교체했습니다.
그냥 이 깨끗한 프로젝트를 하고 건설하세요.
저의 경우, 위의 어떤 것도 작동하지 않았지만, 5.2.3.0을 4.0.0으로 교체하는 것은 문제를 해결하지 못했습니다.
VS2019: Tools -> Nuget Package Manager -> Package Manager Setting -> Package Restore 섹션에서 두 가지 옵션을 선택합니다.그런 다음 프로젝트 패키지 폴더로 이동하여 내부의 모든 하위 폴더를 삭제합니다(더 이상 오류 없음).그런 다음 솔루션을 다시 빌드하면 Nuget이 모든 패키지를 다시 다운로드하고 프로젝트가 참조 없이 실행됩니다.
VS 2019에서 ASP.NET 프로젝트에 문제가 있었습니다.
또 다른 증상은 일부 참조(시스템)였습니다.Web.Http)가 프로젝트 참조 목록(솔루션 탐색기)에서 결함으로 표시되었습니다.
내 솔루션:
- 프로젝트 -> 참조에서 잘못된 참조를 삭제합니다(오른쪽 클릭, ...).
- 빌드
- 빌드 오류 "유형 또는 네임스페이스 이름 [...]을(를) 찾을 수 없습니다." 또는 유사한 오류로 이동합니다.
- "잠재적인 수정사항 표시" -> 패키지 설치
원인:
csproj 파일의 차이를 보니 문제의 원인을 알 수 있었습니다.누군가가 Windows Program 파일 폴더의 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>
속성 대화상자에서 라이브러리 참조를 "Copy Local = True"로 설정해야 합니다.시각적 스튜디오에서 "참조"를 클릭한 다음 누락된 참조를 마우스 오른쪽 버튼으로 클릭합니다. 상황에 맞는 메뉴에서 속성을 클릭하면 로컬 설정 복사가 표시됩니다.
나의 경우 WebApi.config에서 아래 줄을 몇 개 추가하면 새 nuget 패키지를 업데이트한 후 작동하지 않음
var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;
네임스페이스를 추가하는 것을 잊지 마십시오.
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
이 문제를 해결하기 위해 제가 한 일은
NuGet 패키지 관리자로 이동합니다.
왼쪽 패널에서 업데이트를 선택합니다.
WebApi 구성 요소 업데이트
그 후, 프로젝트는 오류 없이 실행되었습니다.
버전이 --> web.config 파일과 --> Microsoft 모두와 일치하는지 확인합니다.AsNet.WebApi.클라이언트, 마이크로소프트그렇지 않으면 AsNet.WebApi를 업데이트하십시오.
한 가지 더 고려해야 할 것이 있습니다..NET 4.x 솔루션에서 .NET 5.0 앱(예: blaze 또는 WASM)을 사용하는 경우 충돌하는 파일을 추가할 수 있습니다.또한 Microsoft .NET SDK 6 또는 7을 설치한 경우 대상 프레임워크(예: 5.0)는 중요하지 않습니다. 도트넷 게시는 항상 최신 버전의 SDK를 사용합니다.이제 호환되지 않는 dll 또는 필요 없는 dll이 있기 때문에 예상치 못한 문제가 발생할 수 있습니다.게시 중에 사용할 SDK를 나타내는 global.json 파일을 만들어 보십시오.https://learn.microsoft.com/en-us/dotnet/core/versions/selection
언급URL : https://stackoverflow.com/questions/22403650/could-not-load-file-or-assembly-system-net-http-formatting-or-one-of-its-depen
'programing' 카테고리의 다른 글
확인란의 레이블에 대한 jQuery 선택기 (0) | 2023.05.26 |
---|---|
가타나와 OWIN을 간단한 단어와 용법으로 설명하는 방법은? (0) | 2023.05.21 |
모든 원격 지점을 복제하려면 어떻게 해야 합니까? (0) | 2023.05.21 |
하나의 로컬 분기를 다른 로컬 분기로 병합 (0) | 2023.05.21 |
리소스 URL 컨텍스트에 사용된 안전하지 않은 값리소스 URL 컨텍스트에 사용된 안전하지 않은 값 (0) | 2023.05.21 |