Почему проект project.json/xproj не открывается в Visual Studio 15 (предварительный просмотр)?

У меня есть существующее решение, включающее несколько проектов project.json(и соответствующих xproj), над которыми я работал некоторое время. Он отлично работает в Visual Studio 2015, но он не загружается в VS 15 (предварительный просмотр), просто показывая значок неудачной загрузки для каждого. Сообщения не печатаются.

Что происходит, и как я могу его исправить?

Ответы

Ответ 1

Возможно, что ваш xproj был создан (автоматически) с ранними версиями инструмента dnx. Это использовало определенные импортные файлы MSBuild, которые поддерживались в то время, но которые были заменены, поскольку инструменты DNX эволюционировали (и совсем недавно: были заменены DotNet).

Обратная совместимость сохранялась в VS 2015, но поддержка этих старых xproj не сохранялась в VS 15. Таким образом, вам нужно либо отредактировать xproj, либо (проще) просто удалить .xproj и .xproj.user, удалите проект из решения и снова добавьте его; это воссоздает xproj с текущей инструментами.

Если вы хотите отредактировать его вручную, вы должны заменить:

<Import Project="$(VSToolsPath)\AspNet\Microsoft.Web.AspNet.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\AspNet\Microsoft.Web.AspNet.targets" 
    Condition="'$(VSToolsPath)' != ''" />

с помощью:

<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" 
    Condition="'$(VSToolsPath)' != ''" />

или

<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets"
    Condition="'$(VSToolsPath)' != ''" />

Как вы можете видеть, это отражает эволюцию инструментария. Первый вариант больше не поддерживается в VS 15. Окончательный вариант, вероятно, ближе всего к RTM будет выглядеть, , но не работает в VS 2015 с текущим инструментом. Итак... вы, вероятно, сейчас хотите использовать средний вариант.

Ответ 2

Установите инструменты Visual Studio 2015 (предварительный просмотр 2): https://go.microsoft.com/fwlink/?LinkId=827546

Затем настройте свой файл global.json с конкретной версией в пути C:\Program Files\dotnet\sdk

Работает для меня...