Установка Visual Studio 2017 нарушает работу проектов Visual Studio 2015 ASP.NET Core

94

После установки Visual Studio 2017 Professional я больше не могу создавать ASP.NET Core в Visual Studio 2015 Professional. Я никогда не открывал этот проект в VS2017

я получил

При попытке запустить процесс сервера модели проекта (1.0.0-preview3-004056) произошла следующая ошибка.

Невозможно запустить процесс. Не найдено исполняемого файла соответствующей команды dotnet-projectmodel-server

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

Затем я создал новый проект ASP.NET Core в Visual Studio 2015 и получаю точно такое же сообщение при загрузке своего проекта.

Кроме того, когда я хочу создать проект, я получаю

MSB1009: файл проекта не существует.

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

Та же проблема не возникает с проектами ASP.NET 5, поэтому она ограничена только ASP.NET Core.


Visual Studio 2017, обновление 7 марта

Если добавлен global.json, как в приведенных ниже ответах, вы получите сообщение об ошибке для любой версии .NET Framework, используемой в global.jsonи существующих в C:\Program Files\dotnet\sdk\папке.

Ошибка MSB4019 Импортированный проект «C: \ Program Files \ dotnet \ sdk \ XXX \ Microsoft \ VisualStudio \ v14.0 \ DotNet \ Microsoft.DotNet.Props» не найден. Убедитесь, что путь в объявлении правильный и что файл существует на диске.

Также при закрытии Visual Studio и повторном открытии я получаю исходное сообщение об ошибке

dfmetro
источник
2
Visual Studio 2017 обновила .NET Core SDK, который внес ряд изменений, таких как отказ от project.json и ряд оптимизаций производительности при работе в Visual Studio. Это серьезное изменение в самом ядре .NET.
jessehouwing
Я также установил VS 2017 RC на свой компьютер с VS 2015 update 3 и получил ту же ошибку при попытке открыть существующее приложение ASP.NET Core 1.0 в VS 2015. Этот проект отлично открылся в VS 2015 перед установкой VS 2017 RC. и я никогда не пробовал открыть его с помощью VS 2017 RC. Я удалил VS 2017 RC, а приложение ASP.NET Core 1.0 открывается и теперь работает с VS 2015. Таким образом, очевидно, вопреки тому, что говорит Microsoft, вы не можете установить VS 2017 RC на машине, на которой установлен VS 2015. Это. По крайней мере, если вы хотите открывать приложения ASP.NET Core 1.0, созданные с помощью VS 2015, в VS 2015.
Стивен Петерсон,
1
Публикация также прерывается шаблоном VS2017 ASP.NET Core RC по умолчанию, поэтому я бы посоветовал держаться подальше до RTM
dfmetro
2
Я нашел обходной путь для вашего обновления от 7 марта с отсутствующим Microsoft.DotNet.Props. Перейдите в свою C:\Program Files\dotnet\sdkпапку и найдите папку, которая была установлена ​​непосредственно перед 1.0.0 (в моем случае 1.0.0-preview2-1-003177). Замените sdk / version этим значением в вашем global.json. Затемdotnet restore
AngryHacker 07

Ответы:

77

@ClaudioNunes и @MegaTron имеют правильный ответ . Прочитав этот ответ, я понял, что в моем решении .NET Core не было файла global.json. Я добавил новую папку решения и добавил файл global.json. Поскольку ни один из моих проектов не вложен в подпапки, мне нужно было удалить только «src» и «test» из массива проектов:

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

Теперь проект правильно открывается в VS 2015 с установленным VS 2017 RC.

Стивен Петерсон
источник
У меня сработало спасибо. @Luiz получил бы ответ, поскольку он был первым, но его ответ не был подробным
dfmetro
Спасибо. Я был очень запутан после обновления до VS 2017 RC. Но теперь это работает.
thangchung
2
Кроме того, мне приходилось запускать dotnet restoreкаждый проект, но после этого все работало, как ожидалось.
чел
2
Что это за новая папка с решениями, о которой вы говорите?
Mathieu K.
1
Это не сработало, "version": "1.0.0"но когда я попробовал, "version": "1.0.0-preview2-003131"это сработало .... Спасибо за спасение жизней ...
Нисар
27

Возможный обходной путь - добавить global.json в решение и указать версию sdk, которая будет использоваться, как в

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}
Клаудио Нуньес
источник
5

Перейдите в раздел «Программы и ресурсы», используйте «Core», чтобы отфильтровать и найти установку Preview 3 («Microsoft .NET Core 1.0.1 - SDK Preview 3 (x64).») И удалите ее.

ПРИМЕЧАНИЕ. Запускайте dotnet --versionдо и после удаления этого SDK. В моем случае результаты 1.0.0-preview3-004056(до) и1.0.0-preview2-1-003177 (после).

Я пока не вижу побочных эффектов на vs2017.

Луис Карлос Фариа
источник
1
Это один из способов исправить это, однако вы можете добавить файл global.json в свое решение (файл решения, не добавляемый на уровне проекта), указав используемую версию ядра{ "projects" : [], "sdk":{ "version":"1.0.0-preview2-003121"}}
bougiefever
2

Взгляните на эту ссылку: https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md#known-issues-for-aspnet-core-support-in-visual-studio-2017

Если вы обновите инструменты для Visual Studio 2015 до последней версии, это должно решить проблему. Обратите внимание, что это не обновление Visual Studio 2015, а ASP.NET Core и инструменты.

Тодд Миранда
источник
Я не уверен, какое отношение будет иметь установка последней версии инструментария ASP.NET Core 1.1 к открытию приложения ASP.NET Core 1.0 в VS 2015 и отключению его работы с установленным VS 2017 RC. Я вижу, хотите ли вы обновить существующее приложение ASP.NET Core 1.0 до версии 1.1 в VS 2015, но установка VS 2017 RC не должна иметь ничего общего с тем, как работает VS 2015, особенно с проектами .NET Core, созданными в VS 2015
Стивен Петерсон
0

Обновление проекта было улучшено с Visual Studio 2017 RC до Visual Studio 2017 RTM и сейчас работает.

В итоге я открыл свое решение Visual Studio 2015 ASP.NET Core в Visual Studio 2017, которое обновило каждый проект в решении. Затем я обновил пакеты nuget, и решение работало без каких-либо побочных эффектов.

dfmetro
источник