asp.netwebapi 실행 시 버전 4.0에서 4.5.1로 업그레이드 시 발생한 문제 및 해결

13224 단어
패키지 업데이트
변경net 런타임 버전 이후 다음 구성 요소를 새로 고쳐야 한다는 오류 메시지가 표시됩니다.
EntityFramework, 
EntityFramework.zh-Hans, 
Microsoft.AspNet.Mvc, 
Microsoft.AspNet.Mvc.zh-Hans, 
Microsoft.AspNet.Razor, 
Microsoft.AspNet.Razor.zh-Hans, 
Microsoft.AspNet.WebApi.Client, 
Microsoft.AspNet.WebApi.Client.zh-Hans, 
Microsoft.AspNet.WebApi.Core, 
Microsoft.AspNet.WebApi.Core.zh-Hans, 
Microsoft.AspNet.WebApi.WebHost, 
Microsoft.AspNet.WebApi.WebHost.zh-Hans, 
Microsoft.AspNet.WebPages, 
Microsoft.AspNet.WebPages.zh-Hans, 
Microsoft.Net.Http, 
Newtonsoft.Json    

업데이트하는 방법은 다음과 같습니다.
vs에서 도구 = > nuget 패키지 관리자 = > 패키지 관리자 컨트롤러를 열고 다음 업데이트 명령을 한 줄 한 줄 입력하십시오.
Update-Package Microsoft.AspNet.WebApi -Version 5.2.2 #    Update-Package Microsoft.AspNet.WebApi.Client.zh-Hans -Version 5.2.2 Update-Package Microsoft.AspNet.WebApi.Core.zh-Hans -Version 5.2.2 Update-Package Microsoft.AspNet.WebApi.WebHost.zh-Hans -Version 5.2.2 Update-Package EntityFramework -Version 6.0.1 Update-Package EntityFramework.zh-Hans -Version 6.0.1 Update-Package Microsoft.AspNet.Mvc -Version 5.2.2 Update-Package Microsoft.AspNet.Mvc.zh-Hans -Version 5.2.2 Update-Package Microsoft.AspNet.WebApi.HelpPage -Version 5.2.2 Update-Package Microsoft.AspNet.WebApi.OData -Version 5.2.2 Update-Package Microsoft.AspNet.WebApi.Tracing -Version 5.2.2

위 패키지의 버전 번호는 vs 2013의 웹api 프로젝트 템플릿의 버전 번호를 참조합니다.다음은 프로젝트 템플릿으로 생성된 패키지입니다.config 파일의 내용:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.4.1.9004" targetFramework="net451" />
  <package id="AutoMapper" version="4.0.0" targetFramework="net451" />
  <package id="bootstrap" version="3.0.0" targetFramework="net451" />
  <package id="jQuery" version="1.10.2" targetFramework="net451" />
  <package id="log4net" version="2.0.0" targetFramework="net451" />
  <package id="Microsoft.AspNet.Cors" version="5.0.0" targetFramework="net451" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.Mvc.zh-Hans" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.Razor" version="3.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.Razor.zh-Hans" version="3.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.1.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Cors" version="5.0.0" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.2" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.2.2" targetFramework="net451" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
  <package id="Modernizr" version="2.6.2" targetFramework="net451" />
  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net451" />
  <package id="Respond" version="1.2.0" targetFramework="net451" />
  <package id="WebGrease" version="1.5.2" targetFramework="net451" />
</packages>

 
이 가방을 도입하는 과정에서 vs 리셋을 알릴 수 있습니다 vs 리셋을 요청합니다.
 
오류: "메타데이터 파일을 찾을 수 없습니다."
패키지를 업데이트한 후 다시 컴파일하면 '메타데이터 파일을 찾을 수 없음' 이 나타날 수 있습니다.
해결 방법은 잘못된 항목을 찾은 다음 잘못된 인용 항목을 제거한 다음 다시 인용하는 것이다.
 
오류: 미리 정의된 유형 "Microsoft.CSharp.RuntimeBinder.Binder"가 정의되지 않았거나 가져오지 않은 오류
다시 컴파일하면 미리 정의된 유형 "Microsoft.CSharp.RuntimeBinder.Binder"가 정의되지 않았거나 가져오지 않았음을 알리는 오류가 발생할 수 있습니다. 해결 방법은 다음과 같습니다.
(1) 프로젝트 파일 (접미사 이름.csproj) 을 수첩으로 열고 항목을 찾으면 여러 개를 찾을 수 있습니다. 그 중 하나를 선택하여 추가하십시오.
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />

(2) 프로젝트 파일을 저장한 다음 프로젝트 파일을 다시 불러옵니다.
 
오류: [A]System.Web.WebPages.Razor.Configuration.HostSection을 [B]시스템으로 강제로 변환할 수 없습니다.Web.WebPages.Razor.Configuration.HostSection.
이 문제가 발생한 이유는 설정 파일에서 라조르와 관련된 버전 번호가 맞지 않기 때문입니다.해결 방법은 다음과 같습니다.
(1) 웹.config의
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
  </appSettings>

다음으로 변경:
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
  </appSettings>

(2) Views 폴더 아래의 웹.config의
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>

다음으로 변경:
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>

 
 
 
 
 
 
참조 자료:
A quick tutorial on the Update-Package command
Reinstalling Packages and its Pitfalls

좋은 웹페이지 즐겨찾기