Dự án của bạn không tham chiếu đến khuôn khổ “.NETFramework, Version = v4.5”.


91

Tôi đang sử dụng VS 2015.

Dự án của bạn không tham chiếu đến khuôn khổ ".NETFramework, Version = 4.5". Thêm tham chiếu đến ".NETFramework, Version = 4.5" trong phần "framework" của project.json của bạn, sau đó chạy lại khôi phục NuGet.

Tôi gặp lỗi này trên các lớp Truy cập Dữ liệu và Logic Kinh doanh, ngay sau khi thêm vào Lớp MVC của mình. Mọi thứ vẫn ổn cho đến lúc đó, nhưng tôi không biết điều gì đã gây ra lỗi này. Đây là dự án của tôi.json:

{
  "version": "1.0.0-*",
  "description": "foo bar Class Library",
  "authors": [ "foo bar" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

Đây là những gì tôi đã thử:

  1. Thay thế "dotnet5.4" bằng "net451" (và xóa nó) như được tìm thấy trong câu trả lời này .

Kết quả là cùng một lỗi.

  1. Thay thế "dotnet5.4" bằng "net45" và để lại "net451". Điều này dẫn đến một lỗi mới:

Project.json của bạn không có phần thời gian chạy. Bạn nên thêm '"thời gian chạy": {"win": {}} "vào project.json của mình và sau đó chạy lại khôi phục NuGet.

Tôi đã thử làm như lỗi này được đề xuất và thêm

"runtimes": {
    "win":  {}
  },

Điều này khiến tôi gặp lỗi này, lỗi mà tôi dường như không thể vượt qua:

Project.json của bạn không liệt kê 'win' dưới dạng thời gian chạy được nhắm mục tiêu. Bạn nên thêm '"win": {}' bên trong phần "runtimes" trong project.json của mình, sau đó chạy lại khôi phục NuGet.

Tôi đã thêm "win", và điều này bắt đầu giống như một con cá trích đỏ. Tôi đang làm gì để thay đổi trực tiếp project.json, NuGet không xử lý việc này sao?


Đối với phần đầu tiên đi đến thiết lập dự án của bạn và thiết lập Target Framework đến 4,5
Hirbod Behnam

Nó đã được thiết lập theo cách đó rồi.
S. Loveland ECY

1
@ S.LovelandECY Bạn đã giải quyết được vấn đề này chưa? Tôi đang gặp vấn đề tương tự cho dù tôi sử dụng 4.5.1, 4.5.2 hay 4.6 - Tất cả các dự án của tôi chắc chắn đều sử dụng cùng một phiên bản khung.
Thierry

@ S.LovelandECY bạn có thể muốn xem xét việc thay đổi câu trả lời được chấp nhận với sự chênh lệch giữa số phiếu bầu giữa câu trả lời đó và câu trả lời được bình chọn cao nhất
RJFalconer Ngày

Câu trả lời:


10

Tôi thực sự chỉ tìm ra vấn đề. Tôi đã nhấp vào Restore Nuget Packagesở cấp giải pháp và tôi đã quản lý để biên dịch PCLtệp của mình , sau đó là phần còn lại của giải pháp của tôi.

Hi vọng điêu nay co ich.


1
câu trả lời này là những gì phù hợp với tôi.
kovac

186

Tôi cũng gặp phải vấn đề tương tự, và cuối cùng tôi không chỉ phải xóa nội dung của binobjcác thư mục mà còn cả .vsthư mục cho giải pháp.


1
.vs đã gây ra vấn đề đối với tôi
Lukas

7
đây là giải pháp cho tôi!
Riki

9
.v không cần thiết đối với tôi. Cảm ơn!
geynske006

2
Tôi không biết làm thế nào để cảm ơn bạn đúng cách. Tôi đã vò đầu bứt tai trong phần lớn thời gian của một giờ để cố gắng tìm ra điều này. đã xóa cả 3 và hoạt động như một cái duyên. +1
tfrascaroli

2
Tôi nghi ngờ rằng sự cố này là do chuyển đổi các nhánh GitHub trên hộp phát triển cục bộ của tôi. Đó là, tôi làm việc trong một chi nhánh và việc biên dịch tạo ra nhiều tệp không phải là một phần của kho lưu trữ. Sau đó, tôi kiểm tra một nhánh khác và các tệp không phải là kho lưu trữ này vẫn còn nguyên. Bằng cách nào đó chúng xung đột với các tệp mới được kiểm tra.
Phoeniceus Agelaius

127

Tôi đã gặp sự cố tương tự - sự cố này vẫn xảy ra khi sử dụng Visual Studio 2017.3, sử dụng tệp .csproj thay vì project.json. Điều thú vị là thông báo lỗi vẫn chứa văn bản "project.json".

Có vẻ như nguyên nhân của sự cố này là một tệp hoặc tệp khóa obj\project.assets.json(tùy thuộc vào phiên bản VS của bạn) từ bản dựng trước đó, tệp này không bị xóa trong quá trình dọn dẹp, như được mô tả ở đây .

Xóa /objthư mục theo cách thủ công là một giải pháp nhanh chóng.

Nếu bạn có một dự án "mới" (ví dụ: .NET Core hoặc dự án netstandard được tạo trong VS 2017) và một dự án "cũ" trong cùng một thư mục (ví dụ: dự án .NET 4.6 được tạo trong VS 2015), có vẻ như họ sẽ liên tục chiến đấu vì cả hai đều sử dụng ./objdir theo những cách khác nhau. Thêm thông tin ở đây. .

Giải pháp msbuild là làm cho một trong những dự án của bạn sử dụng một objdir khác . Tôi đã thêm cái này vào csproj "cũ" của mình:

<PropertyGroup>
  <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 -->
  <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>

4
Cách giải quyết này hoạt động tốt với VS 2017, bạn đã giúp tôi đúng lúc.
MechanicalCoder,

2
Xuất sắc. Giải thích tuyệt vời là tốt.
Mick Byrne

1
Hãy để tôi thêm lời cảm ơn của tôi. Xóa tất cả các thư mục "obj" vi phạm cũng giải quyết được vấn đề của tôi.
Stuart

2
Chúa phù hộ bạn! Tôi đã tự hỏi tệp project.json đẫm máu ở đâu. Xóa / obj đã làm được
Vishnoo Rath 13/1217

1
Vẫn là một vấn đề ngay cả trong VS 2019. Cảm ơn vì giải pháp!
user2363676 19/04 '19

27

Tôi nhận thấy rằng một dự án giả mạo.lock.json đang gây ra sự cố này cho tôi. Sau khi tôi xóa tệp, sự cố đã biến mất.

Đây là một số tài liệu về project.lock.json.

Một số lời khuyên khác sẽ là đảm bảo rằng project.lock.json bị bỏ qua trong tệp git ignore của bạn và thử làm sạch git đầy đủ. Hãy chắc chắn rằng bạn hiểu ý nghĩa của Git clean trước khi làm điều đó.


2

Tôi gặp sự cố tương tự sau khi cập nhật lên Visual Studio cho Mac 7.4 (bản dựng 1033):

Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.

Tôi không có bất kỳ tệp dự án json nào. Các mẹo ở đây cũng không giúp được gì, vì vậy tôi phải tìm ra cách khó mà tôi phải cài đặt SDK Android mới nhất (Oreo 8.1) ngoài SDK mục tiêu của mình (Nougat 7.1).

nhập mô tả hình ảnh ở đây


0

Tôi gặp vấn đề tương tự, nhưng tôi đã giải quyết bằng cách thêm tài nguyên gói nugget thích hợp tại vs2017-->tools-->options-->Nugetpacakge manager--->updated url gói thích hợp.

Tham khảo hình ảnh bên dưới

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.