Перенос, перенос и обновление проектов Visual Studio 2022
Совет
Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.
Сообщество разработчиков | Дорожная карта Visual Studio 2022 | Требования к системе | Совместимость | Распространяемый код | Журнал выпусков | Условия лицензии | Блоги | Известные проблемы последнего выпуска | Документация по новым возможностям в Visual Studio
Каждая новая версия Visual Studio поддерживает большую часть типов проектов, файлов и других ресурсов. С ними можно работать как обычно, при условии, что вы не зависите от новых функций.
Мы стараемся сохранить обратную совместимость с предыдущими версиями, такими как Visual Studio 2019, Visual Studio 2017, Visual Studio 2015, Visual Studio 2013 и Visual Studio 2012. Однако поддержка некоторых типов проектов также со временем меняется. Новейшая версия Visual Studio может не поддерживать некоторые проекты или же потребовать обновить проект так, что он больше не будет обратно совместимым.
Примечание.
Текущее состояние проблем с миграцией см. в сообществе разработчиков Visual Studio. Просмотрите заметки о выпуске, чтобы узнать, какие функции к какой версии Visual Studio относятся.
Внимание
Некоторые типы проектов требуют конкретных рабочих нагрузок. При отсутствии установленной рабочей нагрузки Visual Studio сообщает о неизвестном или несовместимом типе проекта. В этом случае проверьте параметры установки в Visual Studio Installer и повторите попытку. Дополнительные сведения о поддержке проектов в Visual Studio 2022 см. в статье Целевая платформа и совместимость.
Типы проекта
В следующем списке описывается поддержка проектов Visual Studio 2022, созданных в более ранних версиях.
Если здесь отсутствует проект или тип файла, который должен быть, проверьте версию Visual Studio 2019 в этом разделе. Вы также можете использовать кнопку "Отправить и просмотреть отзыв" для>этой страницы в нижней части этой страницы для предоставления сведений о проекте. (Если вы используете анонимный элемент управления "Была ли эта страница полезна?", мы не можем отвечать на ваши отзывы.)
Тип проекта | Поддержка |
---|---|
Проекты .NET Core (XPROJ) | В проектах, созданных в Visual Studio 2015, использовались предварительные версии средств, включающие XPROJ-файл проекта. Visual Studio 2017: формат xproj не поддерживается, кроме переноса в формат csproj. При открытии XPROJ-файла вам будет предложено перенести файл в формат CSPROJ в стиле SDK. (Создается резервная копия xproj-файла.) Проекты csproj в стиле ПАКЕТА SDK не поддерживаются в Visual Studio 2015 и более ранних версиях. Visual Studio 2019: в версии 16.3 и более поздних версиях нельзя загружать или переносить проекты xproj. Дополнительные сведения см. в статье Перенос проектов .NET Core в формат .csproj. |
Веб-приложение ASP.NET Core и веб-приложение ASP.NET Core с включенной службой Application Insights | В Visual Studio сведения о ресурсах хранятся в реестре для каждого экземпляра пользователя. Эти сведения используются, если пользователь хочет найти данные Azure Application Insights, не открывая проект. Visual Studio 2015 использует другое расположение реестра, чем Visual Studio 2017, Visual Studio 2019 и Visual Studio 2022 и не конфликтует. Когда пользователь создает веб-приложение ASP.NET или веб-приложение ASP.NET Core, ресурс сохраняется в SUO-файл. Пользователь может открывать проект в Visual Studio 2015, Visual Studio 2017, Visual Studio 2019 или Visual Studio 2022, и сведения о ресурсе будут использоваться в каждой версии до тех пор, пока Visual Studio поддерживает проекты и решения, используемые в обеих версиях. Пользователям требуется пройти проверку подлинности один раз в каждой версии продукта. Например, если проект создается в Visual Studio 2017 и открывается в Visual Studio 2022, пользователю требуется пройти проверку подлинности в Visual Studio 2022. |
Веб-форма или форма Windows C#/Visual Basic | Этот проект можно открыть в Visual Studio 2022, Visual Studio 2019, Visual Studio 2017 и Visual Studio 2015. |
Закодированный тест ИП | Закодированный тест пользовательского интерфейса для автоматизированного функционального тестирования на основе интерфейса пользователя признан нерекомендуемым в Visual Studio 2019. Visual Studio 2019 станет последней версией решения, в которой поддерживается закодированный тест пользовательского интерфейса. Мы рекомендуем использовать Selenium для тестирования веб-приложений и Appium с WinAppDriver для тестирования классических приложений и приложений универсальной платформы Windows. |
Проекты модульных тестов базы данных (CSPROJ, VBPROJ) | Старые проекты модульных тестов данных загружаются в Visual Studio 2019, но используют GAC-версию зависимостей. Чтобы обновить проект модульного теста для использования последних зависимостей, щелкните проект правой кнопкой мыши в обозревателе решений и выберите Преобразовать в проект модульного тестирования SQL Server. |
F# | Visual Studio 2019 поддерживает открытие проектов, созданных в Visual Studio 2013, Visual Studio 2015 и Visual Studio 2017. Ключевое отличие старых шаблонов Visual Studio для новых проектов заключается в том, что версия FSharp.Core сейчас всегда представляет собой пакет NuGet. F# устанавливается по умолчанию с любой рабочей нагрузкой .NET. |
InstallShield Установка MSI |
Проекты установщика, созданные в Visual Studio 2010, можно открывать в более поздних версиях с помощью расширения Visual Studio Installer Projects. Также см. сведения о расширении набора инструментов WiX для Visual Studio 2017. InstallShield Limited Edition больше не входит в состав Visual Studio. Проверьте доступность Visual Studio 2022 с помощью Revenera . |
LightSwitch | LightSwitch больше не поддерживается в Visual Studio 2022, Visual Studio 2019 или Visual Studio 2017. Проекты, созданные в Visual Studio 2012 и более ранних версиях и открытые в Visual Studio 2013 или Visual Studio 2015, обновляются и могут быть открыты только в Visual Studio 2013 или Visual Studio 2015. |
Нагрузочное тестирование | В Visual Studio 2019 возможности веб-тестов производительности и нагрузочных тестов являются нерекомендуемыми. Visual Studio 2019 станет последней версией решения, в которой поддерживается нагрузочное тестирование. В связи с этим следует использовать альтернативные средства нагрузочного тестирования, такие как Apache JMeter, Akamai CloudTest, Blazemeter. |
Инструменты Microsoft Azure для Visual Studio | Для открытия этих типов проектов сначала установите пакет Azure SDK для .NET, а затем откройте соответствующий проект. При необходимости проект будет обновлен. |
Microsoft Test Manager | Начиная с Visual Studio 2019, Microsoft Test Manager и Feedback Client не поставляются в составе Visual Studio. Для нужд ручного и произвольного тестирования используйте Azure Test Plans (в составе Azure DevOps). |
Платформа MVC ("модель-представление-контроллер") (ASP.NET MVC) | Поддержка версий MVC и Visual Studio:
Обновление версий MVC:
|
Моделирование | Если разрешить автоматическое обновление проекта в Visual Studio, его можно открыть в Visual Studio 2015, Visual Studio 2013 или Visual Studio 2012. Формат проекта моделирования не изменился с момента Visual Studio 2015, и проект можно открыть и изменить в этих версиях. Но в Visual Studio 2017 и Visual Studio 2019 существуют различия в поведении:
|
Установка MSI (VDPROJ) | См. раздел InstallShield этой страницы. |
Office 2007 VSTO | Требует одностороннего обновления до Visual Studio 2022. |
Office 2010 VSTO | Если проект предназначен для платформы .NET Framework 4, его можно открыть в Visual Studio 2010 с пакетом обновления 1 (SP1). Все остальные проекты требуют одностороннего обновления. |
Переносимая библиотека классов (PCL) | Переносимые библиотеки классов (или PCL) теперь не поддерживаются. Visual Studio 2019 по-прежнему открывает и создает их, но создавать проекты PCL невозможно. Рекомендуется выполнить перенос кода в проекте PCL в проект .NET Standard. Поддержка PCL более не будет включена по умолчанию, однако будет доступна на вкладке "Отдельные компоненты" в Visual Studio. |
Рабочая нагрузка Python | В Visual Studio 2019 прекращена поддержка приложений Python Windows IoT Core. Так как в Visual Studio 2022 нет эквивалента, для таких проектов нет пути автоматической миграции. Вы можете по-прежнему использовать Visual Studio 2017. |
Инструменты R для Visual Studio | В Visual Studio 2019 Инструменты R для Visual Studio были исключены из рабочей нагрузки обработки и анализа данных. Вы можете по-прежнему использовать Visual Studio 2017 или такие альтернативные решения, как RStudio. |
Service Fabric (SFPROJ) | Проекты приложений Service Fabric, созданные в Visual Studio 2017 или Visual Studio 2019, можно открывать в Visual Studio 2022 без изменений. Проекты приложений Service Fabric, созданные в Visual Studio 2022 без использования параметра Optimize project layout for ARM deployment (Оптимизировать макет проекта для развертывания с помощью ARM), можно открывать в Visual Studio 2019 16.5 или более поздней версии. Проекты приложений Service Fabric, созданные в Visual Studio 2022 с использованием параметра Optimize project layout for ARM deployment (Оптимизировать макет проекта для развертывания с помощью ARM), можно открывать в Visual Studio 2019 16.10 или более поздней версии. |
SharePoint 2010 | Когда вы открываете проект SharePoint в Visual Studio 2022, он обновляется до SharePoint 2016 или SharePoint 2019. Для этого обновления в Visual Studio должна быть установлена рабочая нагрузка "Разработка классических приложений .NET". Дополнительные сведения об обновлении проектов SharePoint см. в Обновление SharePoint. |
SharePoint 2016 | Проекты надстроек SharePoint, созданные в Office Developer Tools Preview 2, нельзя открыть в Visual Studio 2022. Чтобы обойти это ограничение, в файле CSPROJ VBPROJ для MinimumVisualStudioVersion укажите 12.0, а для MinimumOfficeToolsVersion — значение 12.2. |
Silverlight | Проекты Silverlight не поддерживаются в Visual Studio 2022. Для поддержки приложений Silverlight продолжайте использовать Visual Studio 2015. |
SQL — Redgate | Компоненты Redgate SQL Change Automation Core (прежнее название ReadyRoll Core), SQL Prompt Core и SQL Search более не поставляются вместе с установщиком Visual Studio. Вы можете по-прежнему использовать Visual Studio 2017, где эти возможности доступны. В Visual Studio 2019 вы можете выполнить обновление до платных продуктов SQL Change Automation и SQL Prompt, которые доступны в составе решения Redgate SQL Toolbelt. |
Службы SQL Server Reporting Services и службы SQL Server Analysis Services (SSRS, SSDT, SSAS, MSAS) | Поддержка этих типов проектов предоставляется через два расширения в коллекции Visual Studio: проекты Microsoft Analysis Services и проекты Служб Microsoft Reporting Services. Поддержка SSDT также включена в рабочую нагрузку хранения и обработки данных в Visual Studio 2019. Дополнительную информацию см. на странице Скачивание и установка SQL Server Data Tools (SSDT) для Visual Studio. |
SQL Server Integration Services (SSIS); | Расширение "Проекты служб SQL Server Integration Services" обычно доступно для Visual Studio 2022. Скачайте из SQL Server Integration Services Projects 2022 — Visual Studio Marketplace и ознакомьтесь с руководством по устранению неполадок. |
Расширение окна теста | В Visual Studio 2019 были удалены некоторые API окон тестирования, которые были ранее помечены как общедоступные, но не были задокументированы официально. Эти API были помечены как "нерекомендуемые" в Visual Studio 2017, чтобы заранее предупредить группы обслуживания расширений. Насколько нам известно, с этими API была связана лишь незначительная часть расширений. Дополнительные сведения и обновления см. в полном списке устаревших API для тестирования. Если это влияет на ваш сценарий, сообщите нам об этом через Сообщество разработчиков Visual Studio. |
TypeScript | TypeScript SDK является устаревшим в Visual Studio 2022 и больше не устанавливается по умолчанию в рабочих нагрузках. Проекты, которые компилируют TypeScript, должны установить пакет NuGet Microsoft.TypeScript.MSBuild. Для проектов, которые нельзя обновить сразу, TypeScript SDK по-прежнему предоставляется как дополнительный компонент в Visual Studio Installer и Visual Studio Marketplace. |
Visual C++ | Visual Studio 2022 можно использовать для работы в проектах, которые созданы в более ранних версиях Visual Studio (до Visual Studio 2010). При первом открытии проекта вы можете выполнить обновление до последней версии компилятора и набора инструментов или продолжить использование исходную версию. Если вы решили продолжать использовать исходные, Visual Studio 2022 не изменяет файл проекта и использует набор инструментов из предыдущей установки Visual Studio для сборки проекта. Сохранение исходных параметров означает, что при необходимости вы по-прежнему можете открывать проект в исходной версии Visual Studio. Дополнительные сведения см. в разделе Использование собственного многоплатформенного нацеливания в Visual Studio для сборки старых проектов. |
Расширяемость Visual Studio/VSIX | Проекты с минимальной версией 14.0 или меньше обновляются до минимальной версии 15.0, что не позволяет открывать проекты в более ранних версиях Visual Studio. Чтобы открыть проект в более ранних версиях, задайте $(VisualStudioVersion) в качестве значения минимальной версии. См. также Практическое руководство. Перенос проектов расширяемости в Visual Studio 2017. |
Visual Studio Lab Management | Microsoft Test Manager или Visual Studio 2010 с пакетом обновления 1 (SP1) можно использовать для открытия сред, которые были созданы в какой-либо из этих версий. Но версия Microsoft Test Manager должна соответствовать версии Visual Studio 2010 с пакетом обновления 1 (SP1), чтобы можно было создавать среды. (Важно: Team Foundation Server или TFS теперь называется Azure DevOps Server.) |
Набор средств Visual Studio для Apache Cordova. | В Visual Studio 2019 была прекращена поддержка Apache Cordova. Так как в Visual Studio 2022 нет эквивалента, для таких проектов нет пути автоматической миграции. Вы можете использовать расширение средств Cordova для Visual Studio Code, которое обеспечивает поддержку последней версии Cordova, либо продолжить использовать Visual Studio 2017. |
Веб-развертывание (WDPROJ) | Поддержка проектов веб-развертывания прекращена, начиная с Visual Studio 2012, а вместо нее добавлена поддержка профиля публикации. Так как в Visual Studio 2022 нет эквивалента, для таких проектов нет пути автоматической миграции. Вместо этого откройте в текстовом редакторе файл WDPROJ, скопируйте любые настройки и вставьте их в файл PUBXML (профиль публикации), как описано на сайте StackOverflow. |
Windows Communication Foundation, Windows Workflow Foundation | Этот проект можно открыть в Visual Studio 2022, Visual Studio 2019, Visual Studio 2017, Visual Studio 2015, Visual Studio 2013 и Visual Studio 2012. |
Windows Presentation Foundation | Этот проект можно открыть в Visual Studio 2022, Visual Studio 2019, Visual Studio 2017, Visual Studio 2013, Visual Studio 2012 и Visual Studio 2010 с пакетом обновления 1. |
Приложения Windows Phone | Проекты для Windows Phone не поддерживаются в Visual Studio 2022. Для поддержки приложений Windows Phone 8.x используйте Visual Studio 2015. Для поддержки проектов Windows Phone 7.x используйте Visual Studio 2012. |
Приложения Магазина Windows | Универсальные проекты Windows JavaScript не поддерживаются в Visual Studio 2022. Для поддержки этих проектов используйте Visual Studio 2017. Из установщика Visual Studio 2019 были исключены версии пакетов SDK Windows 10, предшествующие обновлению Windows 10 Fall Creators Update (сборка 16299). Вы можете вручную скачать старые версии таких пакетов SDK или использовать их более новые версии. Универсальные проекты Windows, использующие project.json, не поддерживаются. Рекомендуется обновить эти проекты так, чтобы в них использовались ссылки на пакеты. Кроме того, вы можете добавить ссылку на файл Microsoft.NET.Test.Sdk версии 16.0.0.0 в файл project.json. Проекты для Магазина Windows 8.1 и 8.0 не поддерживаются в Visual Studio 2022. Для поддержки этих приложений продолжайте использовать Visual Studio 2015. |
Xamarin | Начиная с Visual Studio 2022 17.11, Xamarin не поддерживается. Вместо этого проекты Xamarin следует обновить до .NET MAUI. |
Перенос проекта
Хотя мы пытаемся сохранить совместимость с предыдущими версиями, существуют изменения, из-за которых некоторые типы проектов могут больше не поддерживаться. В таких случаях в более новой версии Visual Studio не будет загружаться проект или предлагаться путь миграции. С этим проектом необходимо будет работать в предыдущей версии Visual Studio. Дополнительные сведения о типах проектов, поддерживаемых в Visual Studio 2022, см. на странице "Назначение платформы и совместимость ".
Иногда более новая версия Visual Studio может открывать проект, но она должна обновлять или переносить проект таким образом, что может отрисовка несовместима с предыдущими версиями. Visual Studio использует следующие критерии, чтобы определить, требуется ли такая миграция:
совместимость с целевыми версиями платформ вплоть до Visual Studio 2013 RTM;
совместимость ресурсов времени разработки с предыдущими версиями Visual Studio (в частности, с различными каналами Visual Studio 2022, Visual Studio 2019; Visual Studio 2017, Visual Studio 2015 RTM и с обновлением 3, Visual Studio 2013 RTM и с обновлением 5, Visual Studio 2012 с обновлением 4 и Visual Studio 2010 с пакетом обновления 1); в случае использования нерекомендуемых ресурсов времени разработки в Visual Studio 2022 предпринимается попытка обработать их корректно, не повреждая их, чтобы проект по-прежнему мог открываться в предыдущих версиях;
нарушение совместимости с предыдущими версиями вплоть до Visual Studio 2013 RTM и с обновлением 5 из-за новых ресурсов времени разработки.
Группа разработчиков проекта оценивает эти критерии и создает запрос, если есть необходимость в поддержке, обеспечении совместимости и миграции. Мы пытаемся обеспечивать совместимость между версиями Visual Studio, чтобы проекты, создаваемые в одной версии Visual Studio, могли работать и в других версиях.
Иногда такая совместимость невозможна. Тогда в Visual Studio открывается мастер обновления для внесения необходимых односторонних изменений. Одним из этих односторонних изменений может быть изменение свойства ToolsVersion
в файле проекта. Оно указывает, какая именно версия MSBuild может преобразовывать исходный код проекта в требуемые выполняемые и развертываемые артефакты.
То, что отрисовывает проект, несовместимый с предыдущими версиями Visual Studio, не является версией Visual Studio , но версией MSBuild , как определено ToolsVersion
. Если ваша версия Visual Studio включает в себя цепочку инструментов MSBuild, соответствующую значению свойства ToolsVersion
в проекте, то она может вызывать эту цепочку инструментов для сборки проекта.
Для обеспечения совместимости с проектами, созданными в предыдущих версиях, Visual Studio 2022 включает необходимые цепочки инструментов MSBuild для поддержки ToolsVersion
15, 14, 12 и 4. Сборка проектов, в которых используется любое из этих значений ToolsVersion
, должна выполняться успешно. (Тема, опять же, о том, поддерживает ли Visual Studio 2022 тип проекта, как описано ниже. Целевая платформа и совместимость.)
Вы можете вручную обновить или перенести проект на более новую версию ToolsVersion
. Такое изменение не является обязательным и, скорее всего, приведет ко множеству ошибок и предупреждений, которые потребуется исправить, чтобы сборка проекта снова стала возможной. Кроме того, если в Visual Studio перестанет поддерживаться определенная версия ToolsVersion
, при открытии проекта будет запущен процесс его миграции, так как значение ToolsVersion
должно быть изменено.
Проекты предварительной версии MSBuild
Предупреждение
Проекты .NET предварительной версии MSBuild (т. е. проекты .NET, созданные с использованием версий Visual Studio, которые предопределяют MSBuild), преобразуются только при их обновлении с версией Visual Studio до Visual Studio версии 17.12. Проекты не будут преобразованы при использовании Visual Studio версии 17.13 или более поздней. Преобразуйте все такие проекты, которые вам по-прежнему нужны, с Помощью Visual Studio 17.12 и сохраните преобразованные результаты. Другие форматы проектов будут преобразовываться, и более ранние версии Visual Studio будут продолжать преобразовывать даже файлы проекта MSBuild, которые будут продолжаться. Однако рекомендуется сохранить преобразованные результаты, так как в будущих версиях Visual Studio или будущих обновлениях предыдущих выпусков Visual Studio (включая 2017 и 2019), могут применяться дополнительные ограничения функций обновления.