วิธีรับ 'System.Web.Http, Version = 5.2.3.0?


89

ฉันเพิ่งสร้างโครงการ MVC5 และเพิ่มหลายแพ็คเกจจาก nuget แต่แล้วเมื่อฉันรวบรวมโครงการฉันได้รับข้อผิดพลาดนี้ ดูเหมือนว่าหนึ่งในแพ็คเกจนั้นขึ้นอยู่กับ system.web.http เวอร์ชัน 5.2.3.0 ซึ่งฉันไม่สามารถหาได้จากที่ใด ฉันแค่สงสัยว่าจะรับเวอร์ชันล่าสุดของ system.web.http ได้อย่างไร?

ข้อผิดพลาด 2 Assembly '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, เวอร์ชัน = 5.0.0.0, วัฒนธรรม = เป็นกลาง, 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

คำตอบ:


118

ในคอนโซลตัวจัดการแพ็คเกจ

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


ฉันทำไปแล้วแต่ยังคงให้ข้อผิดพลาดเดิม <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 การพยายามแก้ไขการพึ่งพา '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 และ package.config ของคุณอย่างละเอียดทั้งก่อนและหลังรันคำสั่งนี้แล้วคุณจะเห็นสิ่งที่เปลี่ยนแปลง
AlfredBr

แก้ไขปัญหาของฉัน
พลโสยัง

ฉันต้องใช้Install-Package Microsoft.AspNet.WebApi.Client -Version 5.2.7แทน (.Client แทน. Core) ฉันมี. Core 5.2.7 แล้ว แต่ฉันยังคงได้รับข้อผิดพลาด nuget.org/packages/Microsoft.AspNet.WebApi.Client
user224567893

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ยังไม่สมเหตุสมผลสำหรับฉันเพราะควรใช้แพ็คเกจ NuGet DLL ไม่ใช่เวอร์ชัน GAC แต่เดี๋ยวก่อนมันใช้งานได้ ... ขอบคุณมาก!
jamiebarrow

8

ฉันทำInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3แต่มันก็ยังไม่ได้ผล จากนั้นดูในโฟลเดอร์ถังโครงการของฉันและเห็นว่ายังมีไฟล์ System.Web.Mvc แบบเก่าอยู่

ดังนั้นฉันจึงคัดลอกไฟล์ที่ใหม่กว่าจากแพ็คเกจไปยังโฟลเดอร์ bin ด้วยตนเอง จากนั้นฉันก็เริ่มทำงานอีกครั้ง


7

ติดตั้งแพ็คเกจ Microsoft.AspNet.WebApi.Core -version 5.2.3

จากนั้นในโครงการเพิ่มการอ้างอิง -> เรียกดู กดปุ่มเรียกดูและไปที่ C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ Packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 และเพิ่มไฟล์. dll ที่จำเป็น


7

แพ็คเกจที่คุณติดตั้งได้แนะนำการอ้างอิงกับ dll เวอร์ชัน 5.2.3.0 ตามที่ผู้ใช้ Bracher แสดงไว้ข้างต้น Microsoft.AspNet.WebApi.Cors เป็นแพ็คเกจตัวอย่าง เส้นทางที่ฉันใช้คือการอัปเดตโปรเจ็กต์ MVC เป็นการติดตั้งแพ็คเกจใด ๆ :

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

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


3

การถอนการติดตั้งและติดตั้งแพ็คเกจ NuGet ใหม่ใช้งานได้สำหรับฉัน

  1. ลบข้อมูลอ้างอิงเก่า ๆ ออกจากโครงการ

ดำเนินการในคอนโซล Package Manager:

  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.