Поточний .NET SDK не підтримує націлювання на .NET Core 2.1. Або націлюйте .NET Core 2.0 або старішу версію, або використовуйте .NET SDK, що підтримує .NET Core 2.1


81

спробували оновити до професійної версії Visual Studio 2017 v 15.6.0 (Preview 7.0)

та встановив aspnetcore-runtime-2.1.0-preview1-final-win-x64 та .net core SDK 2.1.4.

Коли я створив нову веб-програму, я отримую повідомлення про помилку

"Поточний .NET SDK не підтримує націлювання на .NET Core 2.1. Або націлюйте .NET Core 2.0 або старішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 2.1."

Коли я намагаюся створити існуючий проект, я отримую повідомлення про помилку

"Поточний .NET SDK не підтримує націлювання на .NET Core 2.1. Або націлюйте .NET Core 2.0 або старішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 2.1."

Я не бачу ".net core 2.1" у моїй цільовій структурі

У мене на комп'ютері немає файлу global.json

Коли я намагаюся dotnet --info, я отримую це

c: \ source \ dnacloud \ testapp> dotnet --info .NET Інструменти командного рядка (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
Це криваві речі, будь-який випуск 15.x.0 VS гнучко розбитий за дизайном. Обхідний шлях не пахне правильно. Досить важливо скористатися Довідкою> Надіслати відгук> Повідомити про проблему, інакше це не буде вирішено досить швидко.
Ганс Пасант,

7
"розбитий дизайном" == поганий дизайн. Я розумію, що MS хоче швидко розгортатись, але пекло залежності, яке вони знову вводять в ландшафт розробки, нагадує мені про спробу побудови коду на ядрах Linux у 90-х ...
Джеремі Головац

Можливий дублікат .NET Core 2.2 неможливо
Henke

Відповіді:


69

Проблема в тому, що Microsoft заплутала багатьох людей з тим, як вони нумерують свої .NET Core SDK.

В оригінальному повідомленні плаката шлях C: \ Program Files \ dotnet \ sdk \ 2.1.100 \ НЕ відображає час виконання .NET Core 2.1 (але ви можете подумати, що це робить).

Я натрапив на цю публікацію . Поточний .NET SDK не підтримує націлювання на .NET Core 2.1 на developercommunity.visualstudio.com, де співробітник служби підтримки Microsoft пояснює плутанину:

"Дякуємо за ваш відгук! Ми визначили, що ця проблема не є помилкою. Перший SDK з підтримкою .NET Core 2.1 - це 2.1.300-preview1. Ми знаємо, що версія версій заплутана, тому, починаючи з 2.1.300, Тепер основні версії SDK також будуть узгоджені з основними версіями середовища виконання. "

Отже ... для того, щоб отримати підтримку .NET Core 2.1 для створення через SDK, потрібно встановити SDK принаймні з версією 2.1.300 (оскільки 2.1.2 НЕ .NET Core 2.1) ... так, заплутано. Дякую корпорації Майкрософт за втрачений час на цьому.


22
"Ми визначили, що ця проблема не є помилкою" Я б назвав цю помилку.
Script Kitty

2
"Ми визначили, що це ніяково, тому ми не будемо називати це помилкою".
Chris B. Behrens

- це виглядає погано.
Крістіан

29

Це трапилося зі мною після встановлення 2.2.100-preview3-009430, а потім оновлення до Visual Studio 15.9.2.

Я вирішив це, увімкнувши опцію "Використовувати попередній перегляд .NET Core SDK".

  1. Перейдіть до: Інструменти> Параметри> Проекти та рішення> .NET Core

  2. Установіть прапорець "Використовувати попередній перегляд .NET Core SDK"

  3. Перезапустіть Visual Studio та відновіть рішення.

Параметри попереднього перегляду VS


Що на сервері збірки, на якому встановлені лише «Інструменти побудови»? Там немає графічного інтерфейсу.
springy76

1
Працював для NETSDK1045 Поточний .NET SDK не підтримує націлювання на .NET Core 3.0. під час випробування блейзера
Vamsi J

2
У VS v.16.1 такого варіанту немає
Євген Максимов

9
Його було переміщено до Інструменти> Параметри> Навколишнє середовище> Попередній перегляд
Люддо,

18

Встановлення .NET Core SDK 2.1.300-preview2зробило для мене фокус:

ОНОВЛЕННЯ: про всяк випадок нещодавно вийшла нова версія. Ви можете завантажити новий .NET Core SDK для 2.2.0-preview1 (що включає ASP.NET 2.2.0-preview1) тут .

Дивіться також цю відповідь, коли ви отримуєте подібну помилку загалом:

Поточний .NET SDK не підтримує націлювання на .NET Core 2.X


Моє рішення не будується, але зараз IIS Express виплюває цю помилку "MACHINE / WEBROOT / APPHOST / ORCHARDCORE.CMS.WEB" з фізичним коренем "C: \ Projects \ OrchardCore \ src \ OrchardCore.Cms.Web \" не вдалося запустити процес з командним рядком '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.
Девід Сопко,

@DavidSopko, швидше за все, вам потрібно подбати про змінні середовища LAUNCHER_PATH та LAUNCHER_ARGS blog.lextudio.com/…
Дмитро Павлов

13

Я вирішив проблему. причиною було те, що я встановив

  • aspnetcore-runtime-2.1.0-preview1-final-win-x64 і
  • .net core SDK 2.1.4-x64 версії.
  • Інсталяція розмістила файли sdk у c:\Program Files\dotnet
  • але VS2017 32bit шукав файли sdk у c:\Program Files(x86)\dotnet.

Щоб вирішити це i

  • встановив x86-версію середовища виконання sdk та aspnetcore,

  • встановіть змінну середовища MSBuildSDKsPath, щоб вказувати на новий шлях встановлення.

  • видалив усі застарілі SDK з панелі управління

Не вдалося знайти запитання VS2017 Update 3 „Microsoft.NET.Sdk.Web“, яке допомогло вирішити цю проблему.


Я стикаюся з такою ж проблемою і встановив aspnetcore-runtime-2.1.0-preview1-final-win-x64, ймовірно, десь минулого місяця. Я не пам’ятаю, звідки я навіть встановлював, і не бачив навіть жодного посилання, яке зараз доступне для такого завантаження (сподіваючись, що на цій сторінці може бути обговорена ця проблема) Звідки ви встановили версію x86? Чи можете ви додати більше опису до своєї відповіді, оскільки це видається загальною проблемою.
rahulaga_dev

1
@RahulAgarwal Трохи пізно з грою, але якщо ви все ще не знайшли потрібної сторінки завантаження, це: microsoft.com/net/download/windows Клацніть на посилання для завантаження x86 .
Карстен Гелінг,

12

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

Ви можете завантажити SDK з вищевказаного сайту

перевірте SDK, який знаходиться у вашій машині Шлях C: \ Program Files \ dotnet \ sdk

Змінити або перевірити цільову структуру в Visual Studio,

Клацніть правою кнопкою миші на Запуск програми або проекту => Застосування => Цільова структура.

Ви можете змінити фреймворк та побудувати рішення та відновити пакунки самородків.

введіть тут опис зображення


Я отримав помилку OP після додавання проекту бібліотеки класів (.NET Core). Виявляється, цільова структура не була встановлена ​​за замовчуванням, тому мені потрібно було лише вибрати її зі спадного меню та зберегти, проблема вирішена.
jhhwilliams

7

Те саме трапилося зі мною, але тоді для версії 2.2 .NET Core. Я встановив останню версію .NET Core 2.2 SDK, яка на той час була 2.2.202. Visual studio дозволив мені створити новий проект для Core 2.2, але він показав помилку:

"Поточний .NET SDK не підтримує націлювання на .NET Core 2.2. Або націлюйте .NET Core 2.1 або старішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 2.2."

Цільова структура для мого проекту була порожньою, і випадаюче меню не відображало 2.2.

Після встановлення .NET Core SDK 2.2.103 помилка зникла, і в спадному меню відображалося ".NET Core 2.2".


2

Зупинка IIS для публікації вирішила проблему. Але спочатку мені потрібно було встановити net core 2.1 SDK та оновити Visual Studio.


2

У мене був встановлений .Net Core SDK 2.1.4 та слідував за іншими відповідями в цій публікації, не вирішуючи моєї проблеми. Нарешті для мене це вдалося встановити .Net Core SDK версії 2.1.301 та видалити кожну іншу версію. Здається, SDK 2.1.4 не може націлюватись на .Net Core 2.1, але SDK 2.1.301 виконує цю роботу.


Чи означає це, що Visual Studio не використовує SDK 2.1.401, навіть якщо він встановлений поруч із 2.1.301?
Барт Вда

2

Перевірте, чи немає у вас global.json файлу в кореневій папці проекту, який змушує ваш проект використовувати лише .NET SDK 2.1.

Якщо у вас є цей файл global.json, видаліть його , а потім перезапустіть Visual Studio.

Як би неприємно це не звучало, я витратив майже годину, займаючись, і навіть завантажив кілька версій SDK, щоб змусити його використовувати 2.2


2

Я також вирішив проблему таким чином:

Перевірте версії на dotnet sdk

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]

Я перевірив свою збірку на всіх цих версіях, і вона не працюватиме, доки не видалю все вищезазначене з програм та функцій. Потім завантажте з останнього:

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

Це спрацювало. Не витрачайте час, як я щойно встановив останню версію dotnet sdk, і ви готові піти. "


1

Я використовую Rider, я мав

Поточний .NET SDK не підтримує націлювання на .NET Core 2.2. Або націлюйте .NET Core 2.1 або старішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 2.2

Я мав:

$ 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]

Я намагався зберігати лише останню версію sdk і мав:

Помилка завантаження проекту 'WebApplication3': не вдалося знайти вказаний SDK 'Microsoft.NET.Sdk.Web'.

Тож я все видалив і переінсталював 2.1.602. Створив новий проект від Rider. І це спрацювало . Не можу сказати, що я зрозумів, як я це вирішив ...

Питання для деяких народів , як представляється, пов'язані з global.json, см:
- 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- не можна-не-знайти /

Інші речі, які я робив раніше (це, здається, не вирішило проблему, але могло допомогти?):
- Оновлення Rider з 2018.3.2 до 2018.3.4 (остання) - Встановлення Mono (використовував той із Unity при перегляді налаштувань збірки Rider).
- Спробував користуватися користувацьким MSBuild від Jetbrain (той, що використовується для Linux) без успіху.
- Встановлення всього, що стосується .NET Core, від інсталятора VS.
- Оновлення спільноти VS від останнього. - Перезавантажте.

У Rider/Build, Execution, Deployement/Toolset and Buildмене тепер є:
Моно виконуваний файл: C:\Program Files\Mono\bin\mono.exe
- Виконавчий файл NET Core CLI: C:\Program Files\dotnet\dotnet.exe
- Використовувати версію MS Build (автоматично виявлено 16.0):C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll


Я майже впевнений, що це пов’язано з останнім рядком вашого допису: так яка версія MSBuild Rider насправді використовує. Він повинен вказувати на той, який надає остання версія .NET Core SDK, яку ви хочете використовувати; інакше щось не так, і вам потрібно перевстановити SDK ...
rsenna

0

Я почав отримувати цю помилку після встановлення SDK 2.2.300. Прочитавши цю публікацію та деякі інші, я повернув її до SDK 2.2.1xx, і помилка зникла. Примітка. Мені довелося видалити SDK 2.2.300 та перезапуститись після встановлення SDK 2.2.1xx.



0

Перейдіть до свого трубопроводу. Клацніть на Редагувати конвеєр. Клацніть на спадне меню Специфікація агента. Змініть його на Windows 2019. Клацніть «Зберегти та чергу».

І ось ти підеш. У мене це добре працювало.


-1

Схоже, що Microsoft заохочує кращу практику кодування для тих, хто вперше впровадив останнє програмне забезпечення для розробки в Net Core 2.1, вилучивши можливість використовувати старіші програми, де переважають шкідливі звички. Net Core 2.0 та старіші версії майже закінчились, тому їх взагалі не слід використовувати. ( https://blogs.msdn.microsoft.com/dotnet/2018/06/20/net-core-2-0-will-reach-end-of-life-on-september-1-2018/ )

1) Корпорація Майкрософт видалила ServiceLocator, оскільки широко вважається анти-шаблоном, що призводить до важкого для розуміння коду.

2) Для вдосконалення додатків MVC, AccountController було видалено з Автентифікації / Авторизації, щоб заохотити використання сторінок Razor, що реалізують Принцип єдиної відповідальності.

Не вважатиметься найкращою практикою обходити ці зміни, щоб збільшити збереження програмного забезпечення, побудованого відповідно до нижчих стандартів програмної інженерії в минулому.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.