Không tìm thấy cụm tham chiếu cho khuôn khổ “.NETFramework, Version = v4.6.2”


112

Khi cố gắng biên dịch một giải pháp, tôi gặp lỗi bản dựng sau:

Lỗi MSB3644 Không tìm thấy cụm tham chiếu cho khuôn khổ ".NETFramework, Version = v4.6.2". Để giải quyết vấn đề này, hãy cài đặt SDK hoặc Gói nhắm mục tiêu cho phiên bản khung này hoặc nhắm mục tiêu lại ứng dụng của bạn đến một phiên bản khung mà bạn đã cài đặt SDK hoặc Gói nhắm mục tiêu. Lưu ý rằng các hội đồng sẽ được giải quyết từ Bộ đệm ẩn lắp ráp toàn cầu (GAC) và sẽ được sử dụng thay cho các hội đồng tham chiếu. Do đó, lắp ráp của bạn có thể không được nhắm mục tiêu chính xác cho khuôn khổ mà bạn dự định. C: \ RPR \ Dev \ Libraries \ Common \ Common.csproj C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets 1111

Tôi đã thử cài đặt .NET Framework 4.6.2 SDK, cũng như Gói nhắm mục tiêu 4.6, tuy nhiên cả hai đều bị lỗi do tôi đã cài đặt nó. Tôi cũng đã thử cài đặt Visual Studio 2017 nhưng nó vẫn cho lỗi tương tự.

Bất kỳ ý tưởng?


4
Tôi đã thấy sự cố này biến mất khi bạn cài đặt gói nhà phát triển 4.5.2 (tức là không phải 4.6.2 mà là gói nhà phát triển 4.5.2).
Peter Ritchie

Tôi đã gặp sự cố này với 4.8, vì một số lý do mà các tệp csproj của tôi có 4.8.0bên trong, không giống như 4.8rõ ràng.
Jacek Gorgoń

Để biết câu trả lời thực sự, hãy xem stackoverflow.com/a/58850755/155077
Stefan Steiger

Câu trả lời:



67

Windows -> Tìm kiếm -> Trình cài đặt Visual Studio -> Sửa đổi -> Thành phần riêng lẻ và kiểm tra phiên bản phù hợp


9
Đây là một giải pháp rõ ràng vì Visual Studio sẽ liệt kê tất cả các phiên bản cho bạn và hiển thị những gì bạn hiện đã cài đặt và sẽ quản lý tải xuống / cài đặt.
olive_tree

1
Đã thử tất cả các giải pháp ở trên và không có giải pháp nào hoạt động. Điều này đã làm công việc. Cảm ơn
Charlie Seligman

Tôi đang yêu cầu v4.6.1 (các hội đồng tham chiếu) và nó hiển thị v4.6.1 (các công cụ phát triển) được cài đặt thông qua trình cài đặt ... vẫn đang cố gắng tìm hiểu chuyện gì đang xảy ra. HỦY RẰNG: Vấn đề của tôi là không có khuôn khổ .NET nào được cài đặt theo mặc định. Cảm ơn bạn.
Xonatron

1
Đây thực sự phải là câu trả lời hàng đầu!
Tomáš Hübelbauer

Đây là câu trả lời tốt nhất!
Himechi90


12

Tôi đã gặp chính xác lỗi tương tự khi xây dựng ngoại trừ lỗi dành cho ".NETFramework, Version = v4.7.1".

Tôi đã tải xuống gói Nhà phát triển cho 4.7.1 từ đây: https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119

Gói đã cài đặt các chương trình này trên máy đích (máy chủ bản dựng của tôi).

  • Microsoft .NET Framework 4.7.1 SDK
  • Gói nhắm mục tiêu Microsoft .NET Framework 4.7.1
  • Microsoft .NET Framework 4.7.1 Gói nhắm mục tiêu (ENU)

Khi tôi thử xây dựng lại, tôi không gặp lỗi nữa và quá trình xây dựng thành công.


1
Vấn đề tương tự (lỗi máy chủ xây dựng). Gặp lỗi tương tự nhưng đối với 4.7.1 và điều này đã giải quyết nó cho tôi.
Brendan

Ditto cho 4.7.2.
LosManos

12

Bắt đầu từ tháng 5 năm 2019 bạn có thể xây dựng dự án của mình trên net20 lên đến net48 (bao gồm cả ne461) bất kỳ máy nào có cài đặt ít nhất MSBuild hoặc .NET Core SDK mà không cần cài đặt Gói nhà phát triển.

Nếu .NET Core SDK được cài đặt trong máy của bạn, hãy thêm gói nuget Microsoft.NETFramework.ReferenceAssemblies vào dự án của bạn

    <ItemGroup>
        <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0-preview.2">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>     
    </ItemGroup>

Gói này bao gồm tất cả các ReferenceAssemblies bắt đầu từ net20 đến net48

Các gói này cho phép xây dựng các dự án .NET Framework trên bất kỳ máy nào có cài đặt ít nhất MSBuild hoặc .NET Core SDK cộng với các tình huống khác.

Để biết thêm chi tiết: https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies


Giải pháp tuyệt vời!
Akash Agarwal

Hoàn hảo, hoạt động tốt <ItemGroup Condition = "'$ (TargetFramework)' == 'net20' Hoặc '$ (TargetFramework)' == 'net40'">
Stefan Steiger

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.