2017-03-07 40 views
10

Chỉ cần cài đặt Visual Studio 2017 (phiên bản đầy đủ) từ trang web MSDN. Tạo mới Ứng dụng web lõi Asp.Net (.Net Framework) với khung lưới. 4.6 được chọn. Tên dự án = "WebApplicationWithTemplate"Lỗi Visual Studio 2017: Không thể tìm thấy thông tin dự án cho "" Điều này có thể cho biết tham chiếu dự án bị thiếu

Đã thêm một dự án khác thuộc loại Thư viện lớp (.Net Standard) lại với khung .net 4.6 được chọn. Tên dự án = "DataAccessRegular"

Tiếp cố gắng thêm tài liệu tham khảo của dự án thư viện lớp học để các ứng dụng web Asp.Net Core và tôi nhận được lỗi này:

enter image description here

Không thể tìm thấy thông tin dự án cho 'E: \ Development \ VS2017Solution \ DataAccessRegular \ DataAccessRegular.csproj'. Điều này có thể cho biết tham chiếu dự án bị thiếu. WebApplicationWithTemplate C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.targets 92

Đồng thời tạo Thư viện lớp (.net lõi) dự án [không được hiển thị trong ảnh chụp màn hình ở trên] và thêm tham chiếu của nó vào dự án cốt lõi asp.net và vẫn nhận được lỗi tương tự.

Cũng đọc This link on github nhưng không thấy nó hữu ích không may.

Điểm để hỏi điều này là vì tôi muốn giữ các lớp mô hình, dịch vụ và truy cập dữ liệu trong một dự án riêng biệt.

Trả lời

6

Để giải quyết việc này, trong csproj của bạn cho các thư viện lớp, hoặc là thay đổi <TargetFramework>netstandard1.4</TargetFramework>-<TargetFramework>net46</TargetFramework> hoặc <TargetFrameworks>netstandard1.4;net46</TargetFrameworks>

Lưu ý, rằng nếu bạn chỉ định nhiều hơn một mục tiêu, yếu tố cần được thay đổi để TargetFramework số nhiều s, không TargetFramework (Build errors when multi-targeting in csproj file)

Những gì bạn đang thấy đến từ mẫu Class Library (.NET Standard) thực sự nhắm mục tiêu tiêu chuẩn .NET (netstandard1.4 cụ thể) thay vì lựa chọn trong trình đơn khung đích thả xuống. Thay vào đó, sử dụng mẫu Class Library (.NET Framework) cũng sẽ hoạt động.

Cập nhật:

tùy chọn bổ sung:

  • Thay đổi ứng dụng web để nhắm mục tiêu .NET Framework 4.6.1 (điều này sẽ cho phép những điều mà nhắm mục tiêu netstandard1.4 để được tham chiếu
  • Thay đổi thư viện lớp để nhắm mục tiêu netstandard1.3 (điều này sẽ cho phép nó được tham chiếu từ các dự án nhắm mục tiêu .NET Framework 4.6)

Chúng tôi cũng đang theo dõi cải tiến cách mà những vấn đề này được nổi lên với https://github.com/dotnet/sdk/issues/829https://github.com/dotnet/roslyn-project-system/issues/1470

+1

thay đổi thành " netstandard1.4; net46" đã hoạt động - cảm ơn rất nhiều! –

+0

Thay đổi ứng dụng web để nhắm mục tiêu 'Khuôn khổ .NET 4.6.1' là vé của tôi! – bkwdesign

1

Được tham chiếu con đường của dự án lưu trữ trong csproj là trường hợp nhạy cảm! Vì vậy, hãy lưu ý và kiểm tra xem bạn có đúng đường dẫn đúng không!Để làm điều này:

  1. Nhấp chuột phải vào dự án
  2. chọn Edit
  3. Kiểm tra <ProjectReference Include=<Path>
3

tôi giải quyết điều này bằng cách sửa chữa sai lầm của tôi mà tài liệu tham khảo đã được bổ sung cả hai như là một tài liệu tham khảo dự án và như một tài liệu tham khảo trình duyệt.

Việc lắp ráp do đó được tham chiếu hai lần - trực tiếp như một hội đồng - và gián tiếp như đầu ra của một dự án đi kèm.

Khi tôi xóa tham chiếu duyệt qua và chỉ giữ tham chiếu dự án được xóa.

+0

Tôi đã có một dự án mà cả hai dự án nhắm mục tiêu .NET Core - giải pháp của bạn cộng với khởi động lại (đề xuất bởi James Ellis-Jones) của VS sẽ khắc phục vấn đề này .. – Joshit

+0

Tôi có thể xác nhận, rằng nó thực sự là một trường hợp tại Visual Studio 2017 15.5.5. –

11

Tôi gặp vấn đề này sau khi xóa gói nuget (mà tôi đã tự xây dựng) từ một giải pháp rồi thay thế nó bằng tham chiếu dự án đến dự án mà gói được xây dựng. Giải pháp cho vấn đề ...? Đóng VS và mở lại.

+0

Tôi đã có một dự án mà cả hai dự án nhắm mục tiêu .NET Core - giải pháp của bạn cộng với tránh "đôi ref", được đề xuất bởi Hans Karlsen, đã khắc phục vấn đề này .. – Joshit

+0

Khởi động lại của VS làm việc cho tôi. Tôi không có đôi ref, chỉ cần tâm trạng VS. – Endrju

+1

Khởi động lại VS cũng làm việc cho tôi. Tôi đã không thực hiện bất kỳ thay đổi khung đích nào, đó là ' netcoreapp2.0' cho cả hai dự án. – Spark13

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