Поточний пакет .NET SDK не підтримує націлювання на помилку .NET Standard 2.0 у оновленнях Visual Studio 2017 15.3


119

Я хочу створити проект бібліотеки класів за допомогою Target Framework .NET Standard 2.0.

Я оновив свою Visual Studio 2017версію, 15.3а також в інсталяторі Visual Studio перевірив .NET Framework 4.7 SDKі .NET Framework 4.7 targeting packвручну та встановив їх.

У .NET Standard 2.0вікні "Проект / Програма" у вікні "Проект / додаток" все ще немає жодної опції. Тому я змінив тег TargetFramework у .csprojфайлі вручну на netstandard2.0, але після спроби побудови я отримав цю помилку:

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


4
У вас є global.jsonфайл, який закріплює ваш .NET Core SDK до 1.x? Ви встановили .NET Core 2.0 SDK окремо? (Я б очікував, що він буде включений до VS, але все одно не завадить його встановити.)
Джон Скіт

1
@JonSkeet встановлення .NET Core 2.0 SDK працював окремо. Буде добре, якщо ви додасте тут свою пропозицію як відповідь.
sahar

Відповіді:


144

Схоже, встановлення оновлення VS2017 для цієї конкретної версії також не встановило .NET Core 2.0 SDK. Ви можете завантажити його тут .

Щоб перевірити, яку версію SDK ви вже встановили, запустіть

dotnet --info

з командного рядка. Зауважте, що якщо global.jsonу вашому поточному робочому каталозі або будь-якому каталозі предків є файл, який замінить, яка версія запускається SDK. (Це корисно, наприклад, якщо ви хочете застосувати певну версію для проекту, наприклад.)

Судячи з коментарів, деякі версії VS2017 оновлень зробити установки .NET SDK сердечника. Я підозрюю, що з часом може дещо змінюватися.


1
@Marwie: Для націлювання на netstandard2.0, я підозрюю, що ви це зробите. Я не намагався націлити це на 1.0 SDK, але не здивувався б, якщо це не вдалося. Ви все одно можете орієнтуватися на netstandard1.X, зрозуміло, 1,0 SDK.
Джон Скіт

6
Гаразд - я новачок у цій темі - я був здивований тісним зв’язком між .net core і .net стандартом - чи не було причиною створення .net стандарту, щоб опустити такі залежності? Чому б не поставити його окремим пакетом?
Marwie

1
@Marwie: Ну, .NET Core SDK є окремим від .NET Core Runtime, який є окремим від .NET Standard. Але SDK "знає" про набір цільових рамок, і я не здивований, що він не буде працювати з майбутнім . Це як би очікувати, що Visual Studio 2013 складе код C # 7. Хоча це, можливо , буде доцільним для MS , щоб спроектували так , що ви не маєте потребу в 2.0 SDK .NET ядра до цільової netstandard2.0, було б дивним використовувати випадок , щоб хотіти це в будь-якому випадку, ІМО.
Джон Скіт

3
Я отримав помилку після того, як я видалив усі .net Core 1.x SDK. У мене ще був Microsoft. Встановлено .NET core SDK 2.0.2, 2.0.3, 2.1.1 та 2.1.2 та VS 2017 5.2. Одного разу я зробив установку поточного Microsoft вручну вручну. .NET core SDK (2.1.3) Я можу знову скомпілювати свої проекти. Цікаво, що при видаленні 1.x SDK зламали 2.x SDK.
SOHO Developer

2
@Justin: Гаразд, так що звучить як 2.1.4 SDK не встановлений належним чином, або у вас є файл global.json, закріплюючи його на старій версії.
Джон Скіт

20

поки наведені відповіді не вирішили мою проблему. Нарешті я вирішив це, спеціально перейшовши за цим посиланням https://www.microsoft.com/net/download/visual-studio-sdks та завантаживши необхідний sdk для Visual Studio . Це було дійсно заплутано, і я не розумію, чому, але це вирішило мою проблему


Я не можу просто підтвердити це, це теж вирішило мою проблему, але, сподіваюся, хтось з'ясує причину цього.
Бейтан Курт

Це рішення спрацювало і для мене. Для мене це було питання несумісності з останніми SDK. Якщо ви використовуєте Visual Studio 2017, ви не можете використовувати останню версію .NET Core SDK.
нуль

11

Для мене рішенням було змінити версію, global.jsonщоб вона відображала встановлену.

Як і інші, хто сказав, що версію можна знайти dotnet --infoв cmd

Це:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.0.3"
  }
}

Став:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.1.4"
  }
}

Ви також можете створити файл global.json, запустивши

dotnet new globaljson --sdk-version 2.1.4

в корені проекту


2
Де цей global.jsonфайл був би знайдений, якщо він би існував?
Бруно Бієрі

Я думаю, що MS видалили цей файл, перевірте ваші .sln та .csproj файли :)
lsp

2
Файл global.jsonбуде поруч із файлом рішення. Я, як правило, включався як елемент рішення до самого рішення. У своїх експериментах я виявив, що без закриття та перезавантаження рішення зміна версії global.jsonможе призвести до дивних помилок збирання. Мій коментар стосується VS2018, версія 15.9.2, з .NET Core SDK 2.2.100.
Манфред

Від док .NET Core SDK looks for a global.json file in the current working directory ... or one of its parent directories . Так, як файл типу спадкування.
StuartLC

10

Це трапляється іноді, коли я намагаюся відкрити свої старі проекти, і мені це допомагає змінити цільову структуру проектів. Перейти до Project -> Projectname Properties ... і змінити структуру Target , щоб той , який ви встановили. Властивості проекту


Випадаюче меню для мене нічого не показує. Будь-які ідеї?
Денні

9

Це працювало для мене

Скористайтеся установкою Visual Studio

На вкладці "Робочі навантаження" перевірте ". Розробка кросплатформної платформи Net Core" та натисніть "Змінити"

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

Не забудьте перевірити "Інструменти розробки .NET Core 2.0" у меню ліворуч.

Джерело

Примітка

Я встановив Asp Net Core раніше, однак не з’явився на моїй Visual Studio, одразу після того, як я встановив за допомогою установки Visual Studio, з'явився для мене


1
Крім того, ви можете встановити все, що вам потрібно тут: dotnet.microsoft.com/download/…
user2173353

3

Коли я оновив Visual Studio до версії 15.5.1, .Net Core SDK було оновлено до 2.X, тому ця помилка усунулася. Коли я бігаю dotnet --info, зараз бачу таке:

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


3

У мене щойно було це з 15.8.3 після видалення деяких .NET Core 1.x попереднього перегляду SDK, моє додаток не компілюється і показало помилку.

Це було виправлено встановленням останньої версії SDK x86, хоча я перебуваю у Windows 10 x64.

Я припускаю, що це тому, що VS 2017 все ще є програмою x86, і хоча програми працюють як x64, компілятор шукав відповідний х86 SDK


3

У мене були установки як Visual Studio 2019, так і 2017. Я спробував встановити .NET Core 2.X SDK для VS2017 окремо, але не пощастило.

Проблема полягає в тому, що у мене встановлена ​​.NET Core 3.0 SDK як стандартна sdk-версія , що VS2017 не подобається.

Моє рішення було переключити версію SDK для конкретного проекту.

  • Спочатку перерахуйте встановлені пакети SDK, щоб знайти потрібну версію :
$ dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

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

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  1.1.14 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.509 [C:\Program Files\dotnet\sdk]
  2.2.110 [C:\Program Files\dotnet\sdk]
  3.0.100 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]
  • З каталогу вашого рішення :
$ dotnet new globaljson --sdk-version 2.2.110 --force

Тепер dotnetдля цього рішення буде використана вказана версія SDK.

Я не знайшов способу зробити цю систему в цілому, а також не зіпсувати свої проекти 3.0.


Це здається дивним, що це повинно бути необхідним, але великий global.json (для версії 2.1.513) вирішив і мою проблему.
8128,

2

Власне, зі мною це сталося навпаки іншим відповідям.

Я встановив останню версію .NET Core SDK до появи проблеми (у моєму випадку 3.0.0-preview2), не маючи останньої версії Visual Studio (не впевнений, чи це не змінить).

Таким чином, рішення полягало лише в тому, щоб видалити найновіший .NET Core SDK . (Це не ідеально, якщо вам це потрібно, тому ви можете розглянути можливість оновлення Visual Studio до останнього, але принаймні, це вирішило поточну проблему).


1

Я просто пережив цю неприємність. У моєму випадку у мене був робочий сценарій

SET devenvPath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
"%devenvPath%" mySolution.sln /Rebuild "DebugWithUT|AnyCpu" /Out mySolution.Build.log

Сьогодні я почав отримувати цю точну помилку. Але зараз я пам’ятаю, як встановити VS2019 напередодні. Схоже, це щось змінило для VS2017. Я перейшов до VS2017 Update, встановив останню версію / оновлення, і це виправили назад.


0

У мене була така ж проблема, і я маю останню версію Microsoft Visual Studio Community 2017 версії 15.7.3

Щойно я завантажив останню версію SDK 2.1 і жодних проблем із націлюванням. https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.301-windows-x64-installer

Інформація: Microsoft Visual Studio Community 2017 Версія 15.7.3 VisualStudio.15.Реліз / 15.7.3 + 27703.2026 Microsoft .NET Framework Версія 4.7.03056

Встановлена ​​версія: Спільнота

C # Інструменти 2.8.3-beta6-62923-07. Виконувати хеш: 7aafab561e449da50712e16c9e81742b8e7a2969 C # компоненти, що використовуються в IDE. Залежно від типу проекту та налаштувань, може використовуватися інша версія компілятора.

Загальні інструменти Azure 1.10 Надає загальні послуги для використання мобільними службами Azure та Microsoft Azure Tools.

NuGet Package Manager 4.6.0 Менеджер пакунків NuGet у Visual Studio. Для отримання додаткової інформації про NuGet відвідайте http://docs.nuget.org/ .

Розширення ProjectServicesPackage 1.0 Розширення ProjectServicesPackage Visual Studio Детальна інформація

Розширення ResourcePackage 1.0 Розширення ResourcePackage Visual Studio Розширена інформація

Visual Basic Tools 2.8.3-beta6-62923-07. Виконувати хеш: 7aafab561e449da50712e16c9e81742b8e7a2969 Visual Basic компоненти, що використовуються в IDE. Залежно від типу проекту та налаштувань, може використовуватися інша версія компілятора.

Visual Studio Code Debug Adapter Host Package 1.0 Interop-шар для розміщення адаптерів налагодження Visual Studio Code у Visual Studio

Інструменти Visual Studio for Unity 3.7.0.1 Інструменти Visual Studio для Unity


0

переконайтеся, що ви завантажуєте x86 SDK замість лише x64 SDK для візуальної студії.


0

У мене була така ж проблема, що і поточний .NET SDK не підтримує націлювання .NET Core 3.1. Або націліть .NET Core 1.1 або новішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 3.1

1) Переконайтеся, що .Net core SDK встановлений на вашій машині. Завантажте .NET !

2) встановити змінні середовища PATH як нижче Path


0

У мене виникло це питання під час спроби побудувати своє рішення в TFS. Ми використовували завдання "крапка в мережі". Використання msbuild зламало лід для нас.

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