.NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.1. Nhắm mục tiêu .NET Core 2.0 trở xuống hoặc sử dụng .NET SDK hỗ trợ .NET Core 2.1


81

đã thử nâng cấp lên phiên bản chuyên nghiệp của visual studio 2017 v 15.6.0 (Preview 7.0)

và cài đặt aspnetcore-runtime-2.1.0-preview1-final-win-x64 và SDK lõi .net 2.1.4.

Khi tôi tạo một ứng dụng web mới, tôi gặp lỗi nói

"SDK .NET hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.1. Nhắm mục tiêu .NET Core 2.0 trở xuống hoặc sử dụng phiên bản .NET SDK hỗ trợ .NET Core 2.1."

Khi tôi cố gắng xây dựng một dự án hiện có, tôi gặp lỗi

"SDK .NET hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.1. Nhắm mục tiêu .NET Core 2.0 trở xuống hoặc sử dụng phiên bản .NET SDK hỗ trợ .NET Core 2.1."

Tôi không thấy ".net core 2.1" trong khung mục tiêu của mình

Tôi không có tệp global.json trong máy tính của mình

Khi tôi thử dotnet --info, tôi nhận được điều này

c: \ source \ dnacloud \ testapp> dotnet --info .NET Command Line Tools (2.1.100)

Product Information:
Version: 2.1.100
Commit SHA-1 hash: b9e74c6

Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.100\

Microsoft .NET Core Shared Framework Host

Version : 2.0.5
Build : 17373eb129b3b05aa18ece963f8795d65ef8ea54

1
Đây là thứ đang chảy máu, bất kỳ bản phát hành 15.x.0 VS nào đều bị hỏng theo thiết kế. Cách giải quyết không đúng mùi. Khá quan trọng khi sử dụng Trợ giúp> Gửi phản hồi> Báo cáo sự cố, nếu không điều này sẽ không được khắc phục sớm.
Hans Passant

7
"bị hỏng bởi thiết kế" == thiết kế xấu. Tôi nhận được rằng MS muốn triển khai nhanh chóng, nhưng địa ngục phụ thuộc họ đang nuôi lại với cảnh quan phát triển nhắc nhở tôi về cố gắng cố gắng để xây dựng mã trên hạt nhân Linux trong 90 ...
Jeremy Holovacs

Câu trả lời:


69

Vấn đề ở đây là Microsoft đã nhầm lẫn với rất nhiều người về cách họ đánh số các SDK .NET Core của họ.

Trong thông báo của người đăng ban đầu, đường dẫn C: \ Program Files \ dotnet \ sdk \ 2.1.100 \ DOES KHÔNG thể hiện thời gian chạy .NET Core 2.1 (nhưng bạn nghĩ là có).

Tôi đã xem qua bài đăng này .NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.1 trên developercommunity.visualstudio.com, nơi một người hỗ trợ của Microsoft giải thích sự nhầm lẫn:

"Cảm ơn bạn đã phản hồi! Chúng tôi đã xác định rằng vấn đề này không phải là lỗi. SDK đầu tiên có hỗ trợ .NET Core 2.1 là 2.1.300-preview1. Chúng tôi biết việc lập phiên bản là khó hiểu, đó là lý do tại sao bắt đầu từ 2.1.300, Các phiên bản major.minor của SDK giờ đây cũng sẽ được căn chỉnh với các phiên bản major.minor của thời gian chạy. "

Vì vậy, ... để được hỗ trợ .NET Core 2.1 cho việc xây dựng thông qua SDK, bạn cần cài đặt SDK với phiên bản 2.1.300 ít nhất (vì 2.1.2 KHÔNG phải là .NET Core 2.1) ... vâng, khó hiểu. Cảm ơn Microsoft vì đã mất chút thời gian về việc này.


22
"Chúng tôi đã xác định rằng vấn đề này không phải là một lỗi" Tôi sẽ gọi đây là một lỗi.
Script Kitty

2
"Chúng tôi đã xác định rằng điều này là đáng xấu hổ, vì vậy chúng tôi sẽ không gọi nó là một lỗi."
Chris B. Behrens

- nó có vẻ tồi tệ.
Christian

29

Điều này đã xảy ra với tôi sau khi cài đặt 2.2.100-preview3-009430 và sau đó cập nhật lên Visual Studio 15.9.2.

Tôi đã giải quyết bằng cách bật tùy chọn "Sử dụng bản xem trước của .NET Core SDK".

  1. Đi tới: Công cụ> Tùy chọn> Dự án và giải pháp> .NET Core

  2. Chọn hộp "Sử dụng bản xem trước của .NET Core SDK"

  3. Khởi động lại Visual Studio và xây dựng lại giải pháp.

Tùy chọn xem trước VS


Điều gì trên một máy chủ xây dựng chỉ được cài đặt "Công cụ xây dựng"? Không có GUI ở đó.
springy76,

1
Làm việc cho NETSDK1045 .NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 3.0. khi cố gắng ra blazor
Vamsi J

2
Không có tùy chọn như vậy trong VS v.16.1
Eugene Maksimov

9
Nó đã được chuyển vào Tools> Options> Môi trường> Tính năng Preview
Ludwo

18

Cài đặt .NET Core SDK 2.1.300-preview2đã làm một mẹo nhỏ đối với tôi:

CẬP NHẬT: đề phòng, có một phiên bản mới hơn đã được phát hành gần đây. Bạn có thể tải xuống .NET Core SDK mới cho 2.2.0-preview1 (bao gồm ASP.NET 2.2.0-preview1) tại đây .

Xem thêm câu trả lời này khi bạn gặp lỗi như thế này nói chung:

.NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.X


Giải pháp của tôi không xây dựng được nhưng hiện tại IIS Express đang xuất hiện lỗi này 'MACHINE / WEBROOT / APPHOST / ORCHARDCORE.CMS.WEB' with physical root 'C: \ Projects \ OrchardCore \ src \ OrchardCore.Cms.Web \' không thể bắt đầu quá trình với dòng lệnh 'C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ ProjectSystem \ VSIISExeLauncher.exe -argFile "C: \ Users \ daves \ AppData \ Local \ Temp \ tmp221C.tmp "', ErrorCode =' 0x80004005: 0
David Sopko

@DavidSopko rất có thể bạn cần quan tâm đến các biến môi trường LAUNCHER_PATH và LAUNCHER_ARGS blog.lextudio.com/…
Dmitry Pavlov

13

Tôi đã giải quyết vấn đề. nguyên nhân là do tôi đã cài đặt

  • aspnetcore-runtime-2.1.0-preview1-final-win-x64
  • .net core SDK 2.1.4-x64 các phiên bản.
  • Quá trình cài đặt đã đặt các tệp sdk vào c:\Program Files\dotnet
  • nhưng VS2017 32bit đang tìm kiếm các tệp sdk trong c:\Program Files(x86)\dotnet.

Để giải quyết điều này tôi

  • đã cài đặt phiên bản x86 của thời gian chạy sdk và aspnetcore,

  • đặt biến môi trường MSBuildSDKsPath trỏ đến đường dẫn cài đặt mới.

  • đã xóa tất cả các sdk lỗi thời khỏi bảng điều khiển

Không thể tìm thấy câu hỏi VS2017 Update 3 'Microsoft.NET.Sdk.Web' giúp giải quyết vấn đề này.


Tôi đang gặp phải vấn đề tương tự và đã cài đặt aspnetcore-runtime-2.1.0-preview1-final-win-x64 có thể ở đâu đó vào tháng trước. Tôi không nhớ tôi đã cài đặt từ đâu và thậm chí không thể thấy bất kỳ liên kết nào hiện có sẵn để tải xuống như vậy (hy vọng rằng trang đó có thể thảo luận vấn đề này) Bạn đã cài đặt phiên bản x86 từ đâu? Bạn có thể bổ sung thêm mô tả cho câu trả lời của mình vì nó có vẻ là vấn đề phổ biến.
rahulaga_dev

1
@RahulAgarwal Trò chơi hơi muộn, nhưng nếu bạn vẫn chưa tìm được trang tải xuống phù hợp, đó là: microsoft.com/net/download/windows Nhấp vào liên kết tải xuống x86 .
Carsten Gehling

12

https://www.microsoft.com/net/download/visual-studio-sdks

Bạn có thể tải xuống SDK từ trang web trên

kiểm tra SDK trong máy của bạn Đường dẫn C: \ Program Files \ dotnet \ sdk

Thay đổi hoặc kiểm tra khung mục tiêu trong studio trực quan,

Nhấp chuột phải vào Ứng dụng khởi động hoặc dự án => Ứng dụng => Khung mục tiêu.

Bạn có thể thay đổi khuôn khổ và xây dựng giải pháp cũng như khôi phục các gói nugget.

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


Tôi gặp lỗi OP sau khi thêm dự án Thư viện lớp (.NET Core). Hóa ra khung Target không được đặt theo mặc định nên tất cả những gì tôi phải làm là chọn nó từ menu thả xuống và lưu, vấn đề đã được giải quyết.
jhhwilliams

7

Điều tương tự cũng xảy ra với tôi, nhưng sau đó đối với phiên bản 2.2 của .NET Core. Tôi đã cài đặt phiên bản .NET Core 2.2 SDK mới nhất, là 2.2.202 tại thời điểm đó. Visual studio cho phép tôi tạo một dự án mới cho Core 2.2, nhưng nó đang hiển thị lỗi:

".NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.2. Nhắm mục tiêu .NET Core 2.1 trở xuống hoặc sử dụng phiên bản .NET SDK hỗ trợ .NET Core 2.2."

Khung mục tiêu cho dự án của tôi trống và menu thả xuống không hiển thị 2.2.

Sau khi cài đặt .NET Core SDK 2.2.103, lỗi đã biến mất và menu thả xuống hiển thị ".NET Core 2.2".


2

Việc ngừng xuất bản IIS đã giải quyết được vấn đề. Nhưng trước tiên, tôi cần cài đặt net core 2.1 SDK và cập nhật Visual Studio.


2

Tôi đã cài đặt .Net Core SDK 2.1.4 và làm theo các câu trả lời khác trong bài đăng này mà không giải quyết được sự cố của mình. Điều cuối cùng đã làm được với tôi là cài đặt .Net Core SDK phiên bản 2.1.301 và gỡ cài đặt mọi phiên bản khác. Có vẻ như SDK 2.1.4 không thể nhắm mục tiêu .Net Core 2.1 nhưng SDK 2.1.301 thực hiện công việc.


Điều này có nghĩa là Visual Studio không sử dụng SDK 2.1.401 ngay cả khi nó được cài đặt bên cạnh 2.1.301?
Bart VdA

2

Kiểm tra để đảm bảo rằng bạn không có global.jsontệp trong thư mục gốc của dự án buộc dự án của bạn chỉ sử dụng .NET SDK 2.1.

Nếu bạn có tệp global.json này, hãy xóa nó rồi khởi động lại visual studio.

Nghe có vẻ xấu hổ, tôi đã dành gần một giờ để mày mò và thậm chí tôi đã tải xuống một số phiên bản SDK để buộc nó sử dụng 2.2


2

Tôi cũng đã giải quyết vấn đề theo cách này:

Kiểm tra các phiên bản trên dotnet sdk có sẵn

C:\Users\me>dotnet --list-sdks

 ##2.1.202 [C:\Program Files\dotnet\sdk]
 ##2.1.505 [C:\Program Files\dotnet\sdk]
 ##2.1.508 [C:\Program Files\dotnet\sdk]
 ##2.1.509 [C:\Program Files\dotnet\sdk]
 ##2.1.511 [C:\Program Files\dotnet\sdk]
 ##2.1.514 [C:\Program Files\dotnet\sdk]
 ##2.1.801 [C:\Program Files\dotnet\sdk]

Tôi đã thử nghiệm bản dựng của mình trên tất cả các phiên bản đó và nó không hoạt động cho đến khi tôi gỡ cài đặt tất cả các phần trên khỏi Chương trình và Tính năng. Sau đó tải xuống từ phiên bản mới nhất:

https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.300-windows-x64-installer

Điều này đã hiệu quả. Đừng lãng phí thời gian như tôi vừa cài đặt phiên bản mới nhất của dotnet sdk và bạn đã sẵn sàng. "


1

Tôi đang sử dụng Rider, tôi đã có

.NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.2. Nhắm mục tiêu .NET Core 2.1 trở xuống hoặc sử dụng phiên bản .NET SDK hỗ trợ .NET Core 2.2

Tôi đã có:

$ dotnet --list-sdks
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]

Tôi đã cố gắng chỉ giữ lại sdk mới nhất và có:

Không tải được dự án 'WebApplication3': Không tìm thấy SDK 'Microsoft.NET.Sdk.Web' được chỉ định ..

Vì vậy, tôi đã gỡ bỏ mọi thứ và cài đặt lại 2.1.602. Thực hiện một dự án mới từ Rider. Và nó đã hoạt động . Không thể nói rằng tôi hiểu cách tôi đã giải quyết nó ...

Các vấn đề đối với một số người dường như được liên kết với global.json, hãy xem:
- https://docs.microsoft.com/fr-fr/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs= visual-studio
- https://docs.microsoft.com/fr-fr/dotnet/core/tools/global-json
- https://andrewlock.net/the-sdk-microsoft-net-sdk-web-specified- không-thể-tìm thấy /

Những điều khác tôi đã làm trước đây (điều đó dường như không giải quyết được vấn đề nhưng có thể đã giúp ích?):
- Cập nhật Rider từ 2018.3.2 lên 2018.3.4 (mới nhất). - Cài đặt Mono (đã sử dụng cái từ Unity khi xem cài đặt xây dựng Rider).
- Đã cố gắng sử dụng MSBuild tùy chỉnh từ Jetbrain (cái được sử dụng cho Linux) nhưng không thành công.
- Cài đặt mọi thứ liên quan đến .NET Core từ trình cài đặt VS.
- Cập nhật ot cộng đồng VS mới nhất. - Khởi động lại.

Trong Rider/Build, Execution, Deployement/Toolset and Buildtôi bây giờ có:
Thực thi Mono: C:\Program Files\Mono\bin\mono.exe
- Thực thi NET Core CLI: C:\Program Files\dotnet\dotnet.exe
- Sử dụng phiên bản MS Build (Tự động phát hiện 16.0):C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll


Tôi khá chắc rằng nó liên quan đến dòng cuối cùng trong bài đăng của bạn: vậy Rider phiên bản MSBuild nào thực sự đang sử dụng. Nó phải trỏ đến cái được cung cấp bởi .NET Core SDK mới nhất mà bạn muốn sử dụng; nếu không thì cái gì là sai, và bạn cần phải cài đặt lại SDK ...
rsenna

0

Tôi bắt đầu gặp lỗi này sau khi cài đặt SDK 2.2.300. Sau khi đọc bài đăng này và một số bài khác, tôi hạ cấp nó xuống SDK 2.2.1xx và lỗi đã biến mất. Lưu ý: Tôi đã phải gỡ cài đặt SDK 2.2.300 và khởi động lại sau khi cài đặt SDK 2.2.1xx.


0

Tôi gặp sự cố này và tôi đã thực hiện cài đặt mới VS2017. Điều đó đã sửa nó!


0

Chuyển đến đường dẫn của bạn. Nhấp vào Chỉnh sửa đường dẫn. Nhấp vào trình đơn thả xuống Đặc tả đại lý. Thay đổi nó thành Windows 2019. Nhấp vào Lưu và Hàng đợi.

Và của bạn đây. Nó làm việc tốt cho tôi.


-1

Có vẻ như Microsoft đang khuyến khích thực hành mã hóa tốt hơn cho những người sớm sử dụng phần mềm phát triển mới nhất trong Net Core 2.1 bằng cách loại bỏ khả năng sử dụng phần mềm cũ hơn nơi các thói quen xấu phổ biến. Net Core 2.0 và các phiên bản cũ đã gần hết tuổi thọ nên hoàn toàn không được sử dụng. ( https://blogs.msdn.microsoft.com/dotnet/2018/06/20/net-core-2-0-will-reach-end-of-life-on-september-1-2018/ )

1) Microsoft đã loại bỏ ServiceLocator kể từ khi được nhiều người coi là một phản mẫu dẫn đến mã khó hiểu.

2) Để cải thiện các ứng dụng MVC, AccountController đã bị xóa khỏi Xác thực / Ủy quyền để khuyến khích sử dụng các trang Razor thực hiện Nguyên tắc phản hồi duy nhất.

Sẽ không được coi là phương pháp hay nhất để phá vỡ những thay đổi này nhằm tăng khả năng tồn tại của phần mềm được xây dựng để hạ thấp các tiêu chuẩn kỹ thuật phần mềm trước đâ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.