2016-05-26 18 views
38

Tôi đang gặp sự cố khi di chuyển dự án web từ RC1 sang RC2. Khi tôi chuyển đổi, tôi nhận được một loạt các lỗi này trong suốt dự án.Bạn phải thêm tham chiếu đến assembly mscorlib, version = 4.0.0

Loại 'Func <,>' được định nghĩa trong một hội đồng không được tham chiếu. Bạn phải thêm tham chiếu vào assembly 'mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'

Dường như tất cả các hàm linq và biểu thức lambda đều không hoạt động.

Đây là những gì tập tin project.json của tôi trông giống như:

"frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "System.Linq": "4.1.0-rc2-24027" 
     }, 
     "imports": [ "net451", "portable-net45+win8" ] 
    } 
    }, 
    "dependencies": { 
    "NETStandard.Library": "1.5.0-rc2-24027", 
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final", 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final", 
    "System.ComponentModel.Annotations": "4.1.0-*" 
    } 

Bất cứ ý tưởng gì này có nghĩa là? Tôi đã cố gắng chạy dotnet restore, không giúp đỡ.

+0

Tôi không thể tạo lại lỗi này. Bạn có thể chia sẻ toàn bộ project.json của mình không? – svick

+0

Tôi đã gặp sự cố tương tự khi sử dụng đối số 'nhập'. Hãy thử xóa hoàn toàn hoặc thay đổi net451 thành dnx451 – Negorath

+0

@Nghorath ý tưởng hay, cũng cân nhắc xem xét những gì được thêm vào trong ứng dụng web * RC2 * mới. Phần nhập khẩu là "" dotnet5.6 ", " dnxcore50 ", " portable-net45 + win8 "' – wal

Trả lời

68

tôi đã cùng một vấn đề và thêm các gói sau để project.json phụ thuộc của tôi cố định nó cho tôi:

"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027", 

gói này cho phép khả năng tương thích với PCLs mscorlib-based.

+5

Thêm phiên bản 1.0.1 đã cho tôi qua lỗi này. Cảm ơn. – Owen

+0

Có cùng một vấn đề nhưng tôi vẫn có một lỗi 'Tham chiếu đến loại' IListSource 'tuyên bố nó được định nghĩa trong' Hệ thống ', nhưng nó không thể được tìm thấy. ' – jayvee

+2

Điều này cũng hoạt động để tham chiếu các dự án bên ngoài được xây dựng với .NET Framework4 + từ bên trong ứng dụng ASP.NET Core 1.1. – David

22

Trên thực tế, sự cố là một thư viện cũ yêu cầu asp.net 4.0 hoặc 4.5 vesion (ít hơn Core).

Microsoft cung cấp giải pháp cho nó bằng cách cài đặt gói NuGet bị bỏ rơi.

Microsoft.NETCore.Portable.Compatibility

cách này bạn sẽ có thể chạy mã của bạn với libs cũ.

+1

Trong trường hợp của tôi, tôi chỉ cần cập nhật gói này! – jspinella

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