Instalacja programu Visual Studio 2017 przerywa projekty Visual Studio 2015 ASP.NET Core

94

Po zainstalowaniu programu Visual Studio 2017 Professional nie mogę już tworzyć mojego ASP.NET Core w programie Visual Studio 2015 Professional. Nigdy nie otworzyłem tego projektu w VS2017

dostaję

Wystąpił następujący błąd podczas próby uruchomienia procesu serwera modelu projektu (1.0.0-preview3-004056).

Nie można rozpocząć procesu. Nie znaleziono pliku wykonywalnego pasującego do polecenia dotnet-projectmodel-server

wprowadź opis obrazu tutaj

Następnie utworzyłem zupełnie nowy projekt ASP.NET Core w programie Visual Studio 2015 i otrzymuję dokładnie ten sam komunikat podczas ładowania projektu.

Dodatkowo, gdy chcę zbudować projekt, dostaję

MSB1009: Plik projektu nie istnieje.

wprowadź opis obrazu tutaj

Ten sam problem nie występuje w projektach ASP.NET 5, więc jest ograniczony tylko do ASP.NET Core


Aktualizacja programu Visual Studio 2017 7 marca

Jeśli zostanie dodany plik global.json, tak jak w poniższych odpowiedziach, zostanie wyświetlony komunikat o błędzie dla dowolnej wersji platformy .net używanej w global.jsoni istniejących w C:\Program Files\dotnet\sdk\folderze

Błąd MSB4019 Zaimportowany projekt „C: \ Program Files \ dotnet \ sdk \ XXX \ Microsoft \ VisualStudio \ v14.0 \ DotNet \ Microsoft.DotNet.Props” nie został znaleziony. Upewnij się, że ścieżka w deklaracji jest poprawna i że plik istnieje na dysku.

Również podczas zamykania programu Visual Studio i ponownego otwierania otrzymuję oryginalny komunikat o błędzie

dfmetro
źródło
2
Program Visual Studio 2017 zaktualizował .NET Core SDK, co przyniosło sporo zmian, takich jak odejście od project.json i szereg optymalizacji pod kątem wydajności podczas pracy w programie Visual Studio. To przełomowa zmiana w samym .NET core.
jessehouwing
Zainstalowałem również VS 2017 RC na moim komputerze, który ma VS 2015 Update 3 i otrzymałem dokładnie ten sam błąd podczas próby otwarcia istniejącej aplikacji ASP.NET Core 1.0 w VS 2015. Ten projekt został dobrze otwarty w VS 2015 przed zainstalowaniem VS 2017 RC i nigdy nie próbowałem go otwierać za pomocą VS 2017 RC. Odinstalowałem VS 2017 RC, a aplikacja ASP.NET Core 1.0 otwiera się dobrze i teraz kompiluje się z VS 2015. Najwyraźniej, wbrew temu, co mówi Microsoft, nie można zainstalować VS 2017 RC na maszynie, która ma VS 2015 na to. Przynajmniej jeśli chcesz otwierać aplikacje ASP.NET Core 1.0 utworzone za pomocą VS 2015 w VS 2015.
Stephen Peterson
1
Publikowanie jest również zepsute przez domyślny szablon VS2017 ASP.NET Core RC, więc radziłbym trzymać się z daleka aż do RTM
dfmetro
2
Znalazłem obejście dla Twojej aktualizacji z 7 marca z brakującym Microsoft.DotNet.Props. Przejdź do swojego C:\Program Files\dotnet\sdkfolderu i znajdź folder, który został zainstalowany tuż przed 1.0.0 (w moim przypadku 1.0.0-preview2-1-003177). Zastąp sdk / version tą wartością w pliku global.json. Następniedotnet restore
AngryHacker,

Odpowiedzi:

77

@ClaudioNunes i @MegaTron mają poprawną odpowiedź . Po przeczytaniu tej odpowiedzi zdałem sobie sprawę, że moje rozwiązanie .NET Core nie ma pliku global.json. Dodałem nowy folder rozwiązania i dodałem plik global.json. Ponieważ żaden z moich projektów nie jest zagnieżdżony w podfolderach, musiałem tylko usunąć „src” i „test” z tablicy projektów:

{
  "projects": [],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}

Projekt otwiera się teraz poprawnie w VS 2015 z zainstalowanym VS 2017 RC.

Stephen Peterson
źródło
Pracował dla mnie dzięki. @Luiz dostałby odpowiedź, ponieważ był pierwszy, ale jego odpowiedź nie była szczegółowa
dfmetro
Dziękuję Ci. Byłem bardzo zdezorientowany po aktualizacji do VS 2017 RC. Ale teraz to działa.
thangchung
2
Dodatkowo musiałem uruchomić dotnet restorekażdy projekt, ale potem wszystko działało zgodnie z oczekiwaniami.
cel ostry
2
Co to za nowy folder rozwiązań, o którym mówisz?
Mathieu K.
1
To nie zadziałało, "version": "1.0.0"ale kiedy spróbowałem "version": "1.0.0-preview2-003131", zadziałało .... Dzięki za uratowanie życia ...
Nisar
27

Możliwym obejściem jest dodanie pliku global.json do rozwiązania i określenie wersji sdk, która ma być używana w

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}
Claudio Nunes
źródło
5

Przejdź do sekcji Programy i zasoby, użyj opcji „Core”, aby przefiltrować i znaleźć instalację w wersji zapoznawczej 3 („Microsoft .NET Core 1.0.1 - SDK Preview 3 (x64)”) i usuń ją.

UWAGA: Uruchom dotnet --versionprzed i po usunięciu tego zestawu SDK. W moim przypadku wyniki w 1.0.0-preview3-004056(przed) i 1.0.0-preview2-1-003177(po).

Nie widzę jeszcze efektów ubocznych w vs2017.

Luiz Carlos Faria
źródło
1
Jest to jeden ze sposobów rozwiązania tego problemu, jednak możesz dodać plik global.json do swojego rozwiązania (plik rozwiązania, nie dodany na poziomie projektu), określając wersję rdzenia do użycia{ "projects" : [], "sdk":{ "version":"1.0.0-preview2-003121"}}
bougiefever
2

Spójrz na ten link: https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md#known-issues-for-aspnet-core-support-in-visual-studio-2017

Jeśli zaktualizujesz narzędzia dla programu Visual Studio 2015 do najnowszej wersji, powinno to rozwiązać problem. Należy pamiętać, że nie jest to aktualizacja programu Visual Studio 2015, ale ASP.NET Core i narzędzia.

Todd Miranda
źródło
Nie jestem pewien, co instalacja najnowszych narzędzi ASP.NET Core 1.1 miałaby wspólnego z otwarciem aplikacji ASP.NET Core 1.0 w VS 2015 i nie działałaby z zainstalowanym VS 2017 RC. Widzę, czy chcesz zaktualizować istniejącą aplikację ASP.NET Core 1.0 do wersji 1.1 w VS 2015, ale zainstalowanie VS 2017 RC nie powinno mieć nic wspólnego z działaniem VS 2015, zwłaszcza z projektami .NET Core utworzonymi w VS 2015
Stephen Peterson
0

Uaktualnienie projektu zostało ulepszone z programu Visual Studio 2017 RC do Visual Studio 2017 RTM i działa teraz.

Ostatecznie otworzyłem moje rozwiązanie Visual Studio 2015 ASP.NET Core w programie Visual Studio 2017, które uaktualniło każdy projekt w rozwiązaniu. Następnie zaktualizowałem pakiety nuget i rozwiązanie działało bez żadnych skutków ubocznych.

dfmetro
źródło