próbowałem uaktualnić do profesjonalnej wersji programu Visual Studio 2017 v 15.6.0 (wersja zapoznawcza 7.0)
i zainstalowano aspnetcore-runtime-2.1.0-preview1-final-win-x64 oraz .net core SDK 2.1.4.
Podczas tworzenia nowej aplikacji internetowej pojawia się komunikat o błędzie
„Bieżący zestaw .NET SDK nie obsługuje platformy .NET Core 2.1. Docelowa platforma .NET Core 2.0 lub starsza albo użyj wersji zestawu .NET SDK, która obsługuje .NET Core 2.1.”
Kiedy próbuję zbudować istniejący projekt, pojawia się błąd
„Bieżący zestaw .NET SDK nie obsługuje platformy .NET Core 2.1. Docelowa platforma .NET Core 2.0 lub starsza albo użyj wersji zestawu .NET SDK, która obsługuje .NET Core 2.1.”
Nie widzę pliku „.net core 2.1” w moim docelowym frameworku
Nie mam pliku global.json na moim komputerze
Kiedy próbuję dotnet - info, otrzymuję to
c: \ source \ dnacloud \ testapp> dotnet --info. Narzędzia wiersza polecenia .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
Odpowiedzi:
Problem polega na tym, że firma Microsoft pomyliła wiele osób ze sposobem numerowania swoich zestawów SDK .NET Core.
W oryginalnym komunikacie nadawcy ścieżka C: \ Program Files \ dotnet \ sdk \ 2.1.100 \ NIE wydaje się reprezentować środowiska uruchomieniowego .NET Core 2.1 (ale można by pomyśleć, że tak).
Natknąłem się na ten post Bieżący zestaw .NET SDK nie obsługuje platformy .NET Core 2.1 w witrynie developercommunity.visualstudio.com, gdzie osoba pomocy technicznej firmy Microsoft wyjaśnia problem:
A więc ... aby uzyskać obsługę .NET Core 2.1 do tworzenia za pośrednictwem zestawu SDK, musisz zainstalować zestaw SDK z wersją co najmniej 2.1.300 (ponieważ 2.1.2 NIE jest .NET Core 2.1) ... tak, mylące. Dziękuję Microsoft za stracony czas.
źródło
Zdarzyło mi się to po zainstalowaniu 2.2.100-preview3-009430, a następnie aktualizacji do Visual Studio 15.9.2.
Rozwiązałem, włączając opcję „Użyj podglądów zestawu .NET Core SDK”.
Przejdź do: Narzędzia> Opcje> Projekty i rozwiązania> .NET Core
Zaznacz pole „Użyj podglądów zestawu .NET Core SDK”
Uruchom ponownie program Visual Studio i ponownie skompiluj rozwiązanie.
Opcje podglądu VS
źródło
Instalacja
.NET Core SDK 2.1.300-preview2
załatwiła mi sprawę:AKTUALIZACJA: na wszelki wypadek niedawno została wydana nowsza wersja. Możesz pobrać nowy zestaw .NET Core SDK dla wersji 2.2.0-Preview1 (który obejmuje ASP.NET 2.2.0-preview1) tutaj .
Zobacz również tę odpowiedź, gdy generalnie otrzymujesz taki błąd:
źródło
Rozwiązałem problem. przyczyną było to, że zainstalowałem
aspnetcore-runtime-2.1.0-preview1-final-win-x64
i.net core SDK 2.1.4-x64
wersje.c:\Program Files\dotnet
c:\Program Files(x86)\dotnet
.Aby rozwiązać ten problem i
zainstalowałem wersję x86 środowiska uruchomieniowego sdk i aspnetcore,
ustaw zmienną środowiskową MSBuildSDKsPath, aby wskazywała nową ścieżkę instalacji.
usunięto wszystkie przestarzałe pakiety SDK z panelu sterowania
Nie można znaleźć pytania o aktualizację 3 VS2017 „Microsoft.NET.Sdk.Web” w rozwiązaniu tego problemu.
źródło
https://www.microsoft.com/net/download/visual-studio-sdks
Możesz pobrać SDK z powyższej witryny
sprawdź zestaw SDK, który znajduje się w ścieżce komputera C: \ Program Files \ dotnet \ sdk
Zmień lub sprawdź docelowy framework w Visual Studio,
Kliknij prawym przyciskiem myszy na Startup Application or project => Application => Target Framework.
Możesz zmienić strukturę i skompilować rozwiązanie oraz przywrócić pakiety użytkowe.
źródło
To samo stało się ze mną, ale w wersji 2.2 programu .NET Core. Zainstalowałem najnowszą wersję .NET Core 2.2 SDK, która była w tamtym czasie 2.2.202. Visual studio pozwoliło mi stworzyć nowy projekt dla Core 2.2, ale pokazywał błąd:
Platforma docelowa mojego projektu była pusta, a lista rozwijana nie pokazywała 2.2.
Po zainstalowaniu .NET Core SDK 2.2.103 błąd zniknął, a na liście rozwijanej pojawił się „.NET Core 2.2”.
źródło
Zatrzymanie usług IIS w celu opublikowania rozwiązało problem. Najpierw jednak musiałem zainstalować zestaw SDK net core 2.1 i zaktualizować Visual Studio.
źródło
Miałem zainstalowany .Net Core SDK 2.1.4 i postępowałem zgodnie z innymi odpowiedziami w tym poście bez rozwiązania mojego problemu. Ostatecznie dla mnie zainstalowałem .Net Core SDK w wersji 2.1.301 i odinstalowałem wszystkie inne wersje. Wygląda na to, że SDK 2.1.4 nie jest przeznaczony dla .Net Core 2.1, ale SDK 2.1.301 spełnia swoje zadanie.
źródło
Sprawdź, czy nie masz
global.json
w folderze głównym projektu pliku, który zmusza projekt do korzystania tylko z zestawu .NET SDK 2.1.Jeśli masz ten plik global.json, usuń go , a następnie uruchom ponownie program Visual Studio.
Choć może to zabrzmieć żenująco, spędziłem prawie godzinę na majsterkowaniu, a nawet pobrałem kilka wersji SDK, aby zmusić go do używania 2.2
źródło
Problem też rozwiązałem w ten sposób:
Sprawdź dostępne wersje na 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]
Przetestowałem moją kompilację na wszystkich tych wersjach i nie działa, dopóki nie odinstaluję wszystkich powyższych z programów i funkcji. Następnie pobierz najnowsze:
https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.300-windows-x64-installer
To zadziałało. Nie trać czasu, tak jak po prostu zainstalowałem najnowszą wersję dotnet sdk i gotowe. "
źródło
Używam Ridera, który miałem
Miałem:
$ 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]
Próbowałem zachować tylko najnowszy pakiet SDK i miałem:
Usunąłem więc wszystko i ponownie zainstalowałem 2.1.602. Zrobiłem nowy projekt od Ridera. I zadziałało . Nie mogę powiedzieć, że zrozumiałem, jak to rozwiązałem ...
Wydaje się, że problemy niektórych narodów są powiązane z global.json, patrz:
- 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- nie znaleziono/
Inne rzeczy, które zrobiłem wcześniej (to nie wydawało się rozwiązać problemu, ale mogło pomóc?):
- Aktualizacja Ridera z 2018.3.2 do 2018.3.4 (najnowsza). - Instalowanie Mono (użyłem tego z Unity, kiedy patrzyłem na ustawienia kompilacji Ridera).
- Próbowano użyć niestandardowego programu MSBuild firmy Jetbrain (tego używanego w systemie Linux) bez powodzenia.
- Instalowanie wszystkiego związanego z .NET Core z instalatora VS.
- Zaktualizuj społeczność VS. - Restart.
W
Rider/Build, Execution, Deployement/Toolset and Build
Mam teraz:Plik wykonywalny mono:
C:\Program Files\Mono\bin\mono.exe
- Plik wykonywalny NET Core CLI:
C:\Program Files\dotnet\dotnet.exe
- Użyj wersji MS Build (wykryto automatycznie 16.0):
C:\Program - Files\dotnet\sdk\2.1.602\MSBuild.dll
źródło
Zacząłem otrzymywać ten błąd po zainstalowaniu SDK 2.2.300. Po przeczytaniu tego posta i kilku innych obniżyłem go do SDK 2.2.1xx i błąd zniknął. Uwaga: musiałem odinstalować SDK 2.2.300 i ponownie uruchomić po zainstalowaniu SDK 2.2.1xx.
źródło
Miałem ten problem i wykonałem nową instalację VS2017. To naprawiło!
źródło
Idź do swojego rurociągu. Kliknij Edytuj potok. Kliknij listę rozwijaną Specyfikacja agenta. Zmień go na Windows 2019. Kliknij Zapisz i ustaw w kolejce.
I gotowe. U mnie to zadziałało.
źródło
Wygląda na to, że Microsoft zachęca do lepszych praktyk kodowania dla tych pierwszych użytkowników najnowszego oprogramowania deweloperskiego w Net Core 2.1, usuwając możliwość korzystania ze starszego oprogramowania, w którym dominują złe nawyki. Net Core 2.0 i starsze wersje zbliżają się do końca, więc nie powinny być w ogóle używane. ( https://blogs.msdn.microsoft.com/dotnet/2018/06/20/net-core-2-0-will-reach-end-of-life-on-september-1-2018/ )
1) Firma Microsoft usunęła ServiceLocator, ponieważ jest powszechnie uważana za anty-wzorzec, który powoduje trudny do zrozumienia kod.
2) Aby ulepszyć aplikacje MVC, AccountController został usunięty z uwierzytelniania / autoryzacji, aby zachęcić do korzystania ze stron Razor, które implementują zasadę Single Responsibiity.
Nie byłoby uważane za najlepszą praktykę omijanie tych zmian w celu zwiększenia trwałości oprogramowania zbudowanego w przeszłości zgodnie z niższymi standardami inżynierii oprogramowania.
źródło