System.Web.Http v5.0.0.0으로 업그레이드하기위한 NuGet 패키지는 어디에서 찾을 수 있습니까?


125

Unity.WebApi 버전 5.0.0.0을 사용하도록 ASP.NET MVC4 프로젝트를 방금 업그레이드했으며 다음 오류에 따라 System.Web.Http v 5.0.0.0이 필요합니다.

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

현재 System.Web.Http v4.0을 참조하고 있지만 다음 NuGet 패키지를 각각의 최신 버전으로 업그레이드했습니다.

  • ANTLRv3

  • Microsoft ASP.NET 범용 공급자

  • Microsoft.Web. 인프라

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET 면도기

  • Microsoft ASP.NET 범용 공급자 핵심 라이브러리

  • Microsoft ASP.NET 범용 공급자

  • Microsoft ASP.NET 웹 API 2 클라이언트

  • Microsoft ASP.NET 웹 API 2 코어

  • Microsoft ASP.NET 웹 API 2 웹 호스트

  • Microsoft ASP.NET 웹 API 2

  • Microsoft ASP.NET 웹 페이지

  • Microsoft.Web. 인프라

  • Web 그리스

    NuGet을 통해. Micrososft.jQuery.Unobtrusive Validation 등과 같은 관련 JavaScript 라이브러리를 나열하지 않았습니다.

System.Web.Http를 업그레이드하기위한 NuGet 패키지는 무엇입니까? 아니면 수동으로해야합니까?


NuGet Package Manager에서 "Stable"대신 "Prerelease"포함을 선택하면 System.Web.Http가 표시됩니다. 찾고 계십니까?
— 윌리엄

"시험판 포함"을 선택한 후 System.Web.Http를 검색해야합니까? 아니면 어디서보아야합니까?
— Klaus Nji

위의 의견을 무시하십시오! 그 패키지는 구식입니다. 아래 Stjin의 제안을 따르십시오. 이상하게도, 나는에 Unity.WebApi를 설치할 때 내 MVC 4 프로젝트, 내가 확실히 당신을 위해 작동하지 않는 이유는 아니에요, 그래서 자동으로 5.0에 System.Web.Http 참조를 업데이트합니다. 다른 모든 방법이 실패하면 Unity 패키지를 제거하고 다시 설치하십시오.
— William

답변:


206

Microsoft.AspNet.WebApi.Core 패키지 가 필요합니다 .

.csproj 파일에서 볼 수 있습니다.

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

위에 나열된 것처럼 Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core)가 v5.0.0.0으로 업그레이드되었습니다. 제거하고 다시 추가해야합니까?
— 클라우스 은지

7
bin_deployableAssemblies를 정리하고 삭제해야했습니다.
— 클라우스 은지

거의 동일한 프로젝트가 있습니다. 모든 사람들이 계속 이야기하는 bin_deployable Assemblies 폴더는 어디에 있습니까?
— nzondlo

@nzondlo 응용 프로그램을 게시 할 때 폴더가 생성된다고 생각합니다. 그러나 완전히 확실하지는 않습니다.
— user247702

1
@nzondlo bin_deployableAssemblies는 단지 일반 폴더이지만 프로젝트 디렉토리에있을 때 특별한 처리를받습니다. 웹 응용 프로그램을 게시 할 때 해당 폴더의 .dll 파일이 bin 디렉토리에 복사됩니다. NuGet이 주류가되기 전에 웹 앱으로 System.Web.Mvc dll (및 기타)을 배포하는 데 사용되었습니다.
— Steven Liekens

9

솔루션에 여러 프로젝트가 있습니다. 일부 프로젝트의 경우 이전에 참조를 수동으로 추가했습니다. NuGet을 사용하여 WebAPI 패키지를 업데이트 할 때 해당 참조는 자동으로 업데이트되지 않았습니다.

솔루션의 Packages 폴더에있는 v5 DLL을 가리 키도록 다음 참조를 수동으로 업데이트 할 수 있음을 알았습니다.

  1. "NuGet 패키지 관리"로 이동
  2. 설치된 패키지 "Microsoft ASP.NET Web API 2.1"을 선택하십시오.
  3. 관리를 클릭하고 이전에 수동으로 추가 한 프로젝트를 확인하십시오.

패키지를 제거한 다음 즉시 다시 설치하면 문제가 해결됩니다. 다른 개발 시스템에서 프로젝트를 시작할 때 발생했습니다. 자동 패키지 복원이 어떻게 든 잘못된 버전을 얻었습니다.
— Matt J.

1
주요 문제는 기본 프로젝트의 Web.Api를 업데이트하는 중이지만 참조 된 프로젝트는 여전히 이전 버전을 사용하고 있습니다. @Tony가 언급 한 것처럼 솔루션 이름과 Nuget 패키지 관리 메뉴를 마우스 오른쪽 버튼으로 클릭하여 함께 업데이트해야합니다. 건배!
— Orhaan

설치 패키지 Microsoft.AspNet.WebApi.Core
— C Sharper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.