2013-10-26 19 views
17

Tôi là người mới sử dụng SignalR và tôi đã theo dõi cùng với các hướng dẫn MVC 4 của Học viện Microsoft. Tôi đã đánh một khối đường khi nói đến việc cài đặt SignalR.Tôi không thể cài đặt SignalR với MVC4

Các bước: Tạo ứng dụng web MVC4 hoàn toàn mới (Ứng dụng Internet), Xây dựng, Đi tới trình quản lý gói NuGet và tìm "Microsoft ASP.NET SignalR", Nhấn cài đặt. Tôi nhận được thông báo lỗi sau: "Không thể gỡ cài đặt 'Newtonsoft.Json 5.0.8' vì 'Microsoft.AspNet.WebApi.Client 4.0.20710.0' phụ thuộc vào nó."

Nếu tôi cố gắng lần thứ hai, tôi nhận được lỗi sau: "Không thể cài đặt gói 'Microsoft.Owin.Security 2.0.1'. Bạn đang cố cài đặt gói này vào dự án nhắm mục tiêu '.NETFramework, Version = v4.0 ', nhưng gói không chứa bất kỳ tham chiếu lắp ráp hoặc tệp nội dung nào tương thích với khung đó. Để biết thêm thông tin, hãy liên hệ với tác giả gói. "

Tôi đã thử tất cả các mẫu được tạo sẵn. Bản demo có vẻ như đang sử dụng VS2012 (mà tôi là) nên tôi không hiểu vấn đề là gì. Tôi đã nhận thấy rằng khi tôi tạm dừng bản demo họ đang cài đặt v1.1.3 trong khi tôi đang ở v2.0.0

Tôi mới bán cho MVC, thương hiệu mới cho nuget và SignalR. Nếu bất cứ ai có bất kỳ lời khuyên hoặc lựa chọn thay thế tôi sẽ đánh giá cao nó.

+0

Nếu bạn định sử dụng SignalR trên máy chủ sản xuất, bạn nên cân nhắc sử dụng .NET 4.5 và lấy các lợi ích từ 2.x trên SignalR (xem ghi chú phát hành và bạn sẽ nhận được lý do tại sao), thậm chí cả mono đang hỗ trợ .NET 4.5 :) –

+0

Điểm tốt. Tôi chỉ học SignalR vì vậy tôi muốn làm cho nó hoạt động với hướng dẫn. Tôi cũng đã cố gắng cập nhật dự án của mình để sử dụng 4.5 và nó đã phá vỡ khả năng tương thích với một số phụ thuộc hướng dẫn khác. – BrianLegg

+0

Nếu tôi là bạn, tôi sẽ bắt đầu một giải pháp trống với .NET 4.5 và cố gắng để có được hướng dẫn đó được thực hiện nhưng không bao giờ từ bỏ SignalR 2.x! –

Trả lời

36

Có vẻ như một vài ngày trước (ngày 17 tháng 10), một phiên bản mới của SignalR đã được phát hành (phiên bản 2.0.0), sử dụng phiên bản Microsoft.OWIN.Security mới yêu cầu .NET4.5. Để giải quyết vấn đề này, tôi chỉ cần cài đặt phiên bản trước đó (1.1.3) bằng cách sử dụng lệnh Package Manager Console sau:

install-package Microsoft.AspNet.SignalR -Version 1.1.3 
+0

Tôi nên bị đánh đập. Tôi nhận ra đó là một vấn đề phiên bản 4.0 vs 4.5 và tôi cũng thấy rằng họ đã sử dụng SignalR v 1.1.3 trong bản demo. Tôi thậm chí đã thử những gì bạn đề xuất bởi tôi đã nhập "gói-SignalR -Phiên bản 1.1.3" Tôi đã không đủ điều kiện ID. Cảm ơn Gareth rất nhiều và đánh giá cao câu chuyện về phiên bản OWIN. Tôi nghĩ rằng tôi đánh dấu này là câu trả lời nhưng tôi mới vào Stack Overflow quá. – BrianLegg

+0

Truy cập [liên kết gói nuget SignalR] (http://www.nuget.org/packages/Microsoft.AspNet.SignalR/) để biết danh sách các số phiên bản. – Gan

3

sự hiểu biết của tôi về gói NuGet là một chút ropey, nhưng tôi cố gắng khắc phục điều này (Owin) vấn đề bởi

  1. Sử dụng NuGet Package Explorer để mở gói Microsoft.Owin.Security 2.0.1 từ một trực tuyến thức ăn

  2. Di chuyển các tập tin DLL và XML ra khỏi thư mục Net 4.5 và trực tiếp vào lib

  3. Tiết kiệm gói tại địa phương

  4. Thêm phiên bản địa phương của gói

Tôi hiện đang sử dụng VS2010, nhưng tất cả mọi thứ đã làm việc tốt ngày hôm qua trong VS2012. Tôi muốn sử dụng nuget thay vì chỉ thả DLL vào thư mục bin, vì nó làm cho mọi thứ dễ dàng hơn sau này khi tôi cần phải làm sạch và làm những việc đúng.

Ở trên là một cái gì đó của một hack và tôi hoàn toàn mong đợi các chuyên gia thực sự về công cụ này để đề nghị tôi được đặt trong một bao tải và đánh bại với một cây gậy cho thậm chí đề xuất nó. Tuy nhiên, tôi cần phải làm cho nó hoạt động ngay bây giờ cho một bản demo.

+0

Tôi đánh giá cao công việc bạn đưa vào nhưng Gareth là một lệnh 1 dòng bằng cách sử dụng trình quản lý gói vì vậy tôi đã đi với anh ta. – BrianLegg

+1

Bạn được chào đón, nhưng công việc đã được tối thiểu. Và bạn chính xác; Câu trả lời của Gareth tốt hơn nhiều. Cài đặt phiên bản cũ hơn đã xảy ra với tôi, nhưng tôi không biết làm thế nào để làm điều này - Cảm ơn, Gareth; Tôi upvoted câu trả lời của bạn quá. – Justin

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