'System.Web.Http, Version = 5.2.3.0'을 얻는 방법?


88

방금 MVC5 프로젝트를 만들고 nuget에서 여러 패키지를 추가했지만 프로젝트를 컴파일 할 때이 오류가 발생했습니다. 패키지 중 하나가 실제로 system.web.http 버전 5.2.3.0에 의존하는 것 같습니다. system.web.http의 최신 버전을 얻는 방법이 궁금합니다.

오류 2 어셈블리 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'는 'System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'를 사용합니다. 참조 된 어셈블리 'System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'd 
: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ packages 보다 높은 버전 \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll

답변:


117

패키지 관리자 콘솔에서

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3


그래도 여전히 동일한 오류가 발생합니다. <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Attempting to resolve dependency 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. 종속성 'Newtonsoft.Json (≥ 6.0.4)'을 해결하려고합니다. 'Microsoft.AspNet.WebApi.Core 5.2.3'이 이미 설치되어 있습니다. www.ptsol.com.au에는 이미 'Microsoft.AspNet.WebApi.Core 5.2.3'에 대한 참조가 있습니다. </ pre>
John Hadikusumo

4
@JohnHadikusumo는 모든 프로젝트에 대해 이렇게 합니다. 이전 버전의 종속 프로젝트가있는 것 같습니다.

예, 작동합니다. 이 명령을 실행하기 전과 후에 Web.config 및 packages.config를주의 깊게 읽으면 변경된 내용을 확인할 수 있습니다.
AlfredBr

내 문제를 해결했습니다.
Phon Soyang

19

이를 수정하는 한 가지 방법은 web.config 파일에서 어셈블리 리디렉션을 수정하는 것입니다.

다음을 수정하십시오.

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

...에

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

따라서 oldVersion 속성은 "...- 4.0.0.0"에서 "...- 5.2.3.0"으로 변경되어야합니다.


이것은 나를 위해 일했습니다. 우리는 bindingRedirect설정을 <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />했지만 4.0.0.0. GAC 버전이 아닌 NuGet 패키지 DLL을 사용해야하므로 여전히 이해가되지 않지만 작동했습니다. 감사합니다!
jamiebarrow

8

나는 Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3했지만 여전히 작동하지 않았습니다. 그런 다음 내 프로젝트 bin 폴더를 살펴보고 이전 System.Web.Mvc 파일이 여전히 있음을 확인했습니다.

그래서 수동으로 새로운 파일을 패키지에서 bin 폴더로 복사했습니다. 그런 다음 다시 시작했습니다.


7

설치 패키지 Microsoft.AspNet.WebApi.Core-버전 5.2.3

그런 다음 프로젝트에서 참조 추가-> 찾아보기. 찾아보기 버튼을 누르고 C : \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45로 이동하여 필요한 .dll 파일을 추가합니다.


7

설치 한 패키지는 위에 사용자 Bracher가 보여준 것처럼 버전 5.2.3.0 dll에 대한 종속성을 도입했습니다. Microsoft.AspNet.WebApi.Cors는 예제 패키지입니다. 내가 취하는 경로 는 MVC 프로젝트 proir 를 모든 패키지 설치 로 업데이트하는 것입니다 .

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

https://www.nuget.org/packages/microsoft.aspnet.mvc


3

NuGet 패키지를 제거하고 다시 설치하는 것이 저에게 효과적이었습니다.

  1. 프로젝트에서 이전 참조를 제거하십시오.

패키지 관리자 콘솔에서 실행하십시오.

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

이것은 내 문제를 해결했습니다. 정말 많은 일을 해왔고 승진은 너무나 간단했습니다.
George Lanetz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.