2015-07-24 18 views
6

Tôi đã cài đặt VS 2015 (không phải RC mặc dù tôi đã cài đặt trước đó). Tôi đã mở một giải pháp hiện có đang hoạt động tốt trong VS 2013 và gặp lỗi sau.Tại sao VS 2015 cần tham chiếu đến System.Data.Entity nhưng VS 2013 thì không?

BC30652 tham khảo cần thiết để lắp ráp 'System.Data.Entity, Version = 4.0.0.0, Culture = trung tính, PublicKeyToken = b77a5c561934e089' chứa loại 'EntityObject'. thêm một vào dự án của bạn.

Tôi đã thêm tham chiếu đến System.Data.Entity trong dự án như VS được đề xuất và nó hoạt động. Tuy nhiên, tôi tự hỏi tại sao điều này lại xảy ra.

Nếu tôi xóa tham chiếu System.Data.Entity, VS 2013 vẫn hoạt động nhưng VS 2015 ném lỗi. Dự án không có tham chiếu đến System.Data.

Thuyết minh về giải pháp:

  • Nguyên phát triển trong VS 2013
  • .NET 4.0
  • Cũng có tài liệu tham khảo để System.Data
  • Có 2 dự án, một chính (mà gây ra lỗi) và một DAL
  • DAL có Mô hình dữ liệu thực thể (.edmx)
+1

Đây chỉ là ảnh chụp trong bóng tối nhưng điều này có thể là do sự thay đổi về cách trình biên dịch đề cập đến các phụ thuộc transitive. Ví dụ. giả sử rằng dự án của bạn A phụ thuộc vào thư viện B và B hiển thị một loại C công khai có nguồn gốc từ EntityObject. Sau đó, liệu A cần tham chiếu đến Entity Framework thường sẽ phụ thuộc vào những gì nó làm với lớp C. Thật không may không có quy tắc cứng về cách thức hoạt động và nó có thể phụ thuộc vào việc thực hiện trình biên dịch. Kể từ VS 2015 và .NET 4.6 đi kèm với trình biên dịch C# và VB mới, các quy tắc có thể đã thay đổi theo những cách tinh tế. – divega

+0

@divega Bạn có biết cách tôi có thể kiểm tra cú đánh của bạn trong bóng tối không? –

+0

Trước tiên, bạn có thể xác nhận rằng ứng dụng của bạn phụ thuộc vào thư viện hiển thị loại công khai bắt nguồn từ EntityObject không? Nếu có, bạn có thể thêm thông tin khác trong câu hỏi của mình về cách mã của ứng dụng tương tác với loại đó không? Với thông tin đó, có thể tạo ra một repro đơn giản (mà không cần phải liên quan đến EF), chúng tôi có thể mang đến cho người dùng ngôn ngữ. Nó cũng có thể có thể đến với một workaround để bạn không cần phải thêm các tài liệu tham khảo nếu đó là những gì bạn đang sau. – divega

Trả lời

8

Tôi đã nhận được xác nhận từ nhóm ngôn ngữ Visual Basic rằng điều này rất có thể do sự thay đổi trong trình biên dịch của họ trong Visual Studio 2015:

... chúng tôi thực sự đã cố gắng làm cho mọi thứ dễ dãi hơn. Nhưng tóm tắt là trình biên dịch có thể yêu cầu thêm tài liệu tham khảo cho tính chính xác. Thêm chúng nếu bạn có thể. Tôi tin rằng có một sửa chữa nhanh chóng cho nó nếu bạn gọi bóng đèn.

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