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.