2015-05-19 23 views
9

Tôi vừa tạo một dự án ASP.NET MVC 6 mới và muốn cập nhật các gói NuGet lên các phiên bản mới nhất của chúng (Các mẫu dự án mặc định thường rất lỗi thời). Tôi nhận thấy các bản cập nhật sau là có thể:Cập nhật các gói NuGet trong ASP.NET MVC 6

  • Antlr.3.4.1.9004> Antlr.3.5.0.2
  • Newtonsoft.Json.6.0.4> Newtonsoft.Json.6.0.8
  • WebGrease.1.5. 2> WebGrease.1.6.0

Khi tôi cố nâng cấp các gói này bằng cách sử dụng hộp thoại gói NuGet hoặc cập nhật số phiên bản trong tệp project.json cho Newtonsoft.json, tôi gặp lỗi.

1) Severity Code Description Project File Line Error Not implemented (Exception from HRESULT: 0x80004001 (E_NOTIMPL)) 0

2) Severity Code Description Project File Line Error NuGet Package Restore failed for one or more packages. See details in the Output window. Mvc6ProjectName C:[PATH TO MY FOLDER]\Source\Mvc6ProjectName\project.json 0

3) Severity Code Description Project File Line Error Dependency Newtonsoft.Json >= 6.0.8 could not be resolved Mvc6Boilerplate C:\Git\ASP.NET-MVC-Boilerplate\Source\MVC6\Mvc6Boilerplate\project.json 19

Tôi cũng có dự án MVC và đang sử dụng gói NuGet mới nhất tại sao vậy tại sao tôi không thể nâng cấp các gói này? Đây có phải là để làm với thực tế rằng không có tập tin web.config nhiều nơi chúng tôi có thể xác định thời gian chạy assemblyBinding của:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Cập nhật 1

Khi tôi cố gắng cập nhật Newtonsoft.Json từ người quản lý gói giao diện điều khiển, tôi nhận được lỗi dưới đây:

PM> Update-Package Newtonsoft.Json -ProjectName Mvc6Boilerplate -Version 6.0.8 Package with the Id 'Newtonsoft.Json' is not installed to project 'Mvc6Boilerplate'.

Có vẻ như Newtonsoft.Json không được cài đặt trong dự án MVC 6 mặc định nhưng được cài đặt dưới dạng phụ thuộc của dự án khác. Gói NuGet này không thực sự được hiển thị trong Trình quản lý gói Nuget, nhưng được hiển thị trong tệp project.json và cũng trong mục khung nhìn cây References-> DNX và DNX Core.

Khi tôi cố gắng cài đặt gói Newtonsoft.Json một cách rõ ràng, nó nâng cấp lên 6.0.8 nhưng sau đó tôi nhận được các lỗi tôi liệt kê ở trên.

+1

Nếu bạn đi đến cửa sổ Output, thay đổi thả xuống để "Package Manager", những lỗi nào bạn có thể tìm thấy ở đó? Tôi chưa gặp vấn đề gì khi nâng cấp các gói. Tôi đã thêm thủ công ' true' vào các tệp xproj để xử lý vấn đề ràng buộc. –

+0

Xem cập nhật 1 của tôi ở trên. Tôi đã thử thêm AutoGenerateBindingRedirects nhưng nó không giúp đỡ. –

+1

Tôi đã không mong đợi 'AutoGenerateBindingRedirects' để thực hiện bất kỳ sự khác biệt. Thật không may, tôi không phải là đã được rõ ràng - cửa sổ đầu ra là khác nhau từ Package Manager Console. (Việc đặt tên tương tự không giúp được gì.) Bạn thường có thể truy cập nó bằng 'Ctrl + W, O' hoặc sử dụng thanh Quick Launch ở trên cùng. Có thể bạn sẽ cần thay đổi danh sách thả xuống ... Sẽ có rất nhiều dòng GET và CACHE, có thể có một hoặc hai lỗi nằm rải rác. –

Trả lời

2

Lỗi này: "Mô tả mã mức độ nghiêm trọng Dòng dự án Tệp lỗi NuGet Gói khôi phục không thành công cho một hoặc nhiều gói. Xem chi tiết trong cửa sổ đầu ra."

... đã được giải quyết cho tôi bằng cách đảm bảo rằng tôi đang chạy VisualStudio với tư cách Quản trị viên.

Mặc dù, trang không hoàn toàn hiển thị tốt trên bản dựng đầu tiên.

0

Giải pháp dễ nhất mà tôi biết ngay bây giờ là sử dụng Visual Studio 2013 thay vì 2015 để nâng cấp gói của bạn.

0

Dường như vấn đề đã được giải quyết. Bạn phải cập nhật NugetPackage Manager:

Tools> Extensions và cập nhật> Cập nhật> Visual Studio Gallery

Các vấn đề liên quan