Как перенацелить приложение visual studio
Перейти к содержимому

Как перенацелить приложение visual studio

  • автор:

Перенос, перенос и обновление проектов Visual Studio 2022

Просмотрите записи с мероприятия по запуску Visual Studio 2022, чтобы узнать о новых возможностях, услышать советы и скачать бесплатные цифровые образцы.

Каждая новая версия 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 2010 с пакетом обновления 1 (SP1) поддерживает MVC 2 и MVC 3. Поддержка MVC 4 добавляется с помощью скачивания ASP.NET 4 MVC 4 для Visual Studio 2010 с пакетом обновления 1 (SP1).
  • Visual Studio 2012 поддерживает только MVC 3 и MVC 4.
  • Visual Studio 2013 поддерживает только MVC 4 и MVC 5
  • Visual Studio 2019, Visual Studio 2017 и Visual Studio 2015 поддерживают MVC 4 (можно открывать существующие проекты, но не создавать новые) и MVC 5
  • Сведения об автоматическом обновлении MVC 2 до MVC 3 см. в разделе Средство обновления приложения MVC 3 ASP.NET.
  • Сведения об обновлении MVC 2 до MVC 3 вручную см. в разделе Обновление проекта ASP.NET MVC 2 до обновления инструментов ASP.NET MVC 3.
  • Сведения об обновлении MVC3 до MVC 4 вручную см. в разделе Обновление проекта ASP.NET MVC 3 до ASP.NET MVC 4. Если проект ориентирован на платформу .NET Framework 3.5 с пакетом обновления 1 (SP1), необходимо переориентировать его на .NET Framework 4.
  • Сведения об обновлении MVC 4 до MVC 5 вручную см. в статье Обновление проекта ASP.NET MVC 4 и веб-API до ASP.NET MVC 5 и веб-API 2.
  • Теперь проекты моделирования называются в меню и шаблонах проектами проверки зависимостей.
  • UML-схемы больше не поддерживаются в Visual Studio 2017 и Visual Studio 2019. UML-файлы указываются в обозревателе решений, как и ранее, но открываются как XML-файлы. Для просмотра, создания или изменения UML-схем следует использовать Visual Studio 2015.
  • В Visual Studio 2019 проверка архитектурных зависимостей больше не выполняется при сборке проекта моделирования. Вместо этого проверка осуществляется при сборке каждого проекта кода. Это изменение не влияет на проект моделирования, но требует изменений в проверяемых проектах кода. Visual Studio 2019 автоматически вносит необходимые изменения в проекты кода.

Из установщика 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.

Перенос проекта

Хотя мы пытаемся сохранить совместимость с предыдущими версиями, существуют изменения, из-за которых некоторые типы проектов могут больше не поддерживаться. В таких случаях в более новой версии 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 должно быть изменено.

Связанный контент

  • Руководство по ToolsVersion
  • Руководство по нацеливанию на платформы
  • Ссылка на сведения о миграции и обновлении проекта Visual Studio 2019
  • Поддержка старых версий Visual Studio

ClickOnce и параметры приложения

Параметры приложения для Windows Forms упрощают создание, хранение и обслуживание пользовательских настроек приложения и пользователей на клиенте. В следующем документе описывается, как файлы параметров приложения работают в приложении ClickOnce и как ClickOnce переносит параметры при обновлении пользователя до следующей версии.

Приведенные ниже сведения относятся только к поставщику параметров приложения по умолчанию, LocalFileSettingsProvider классу. Если вы предоставляете настраиваемый поставщик, этот поставщик определит способ хранения данных и способ обновления параметров между версиями. Дополнительные сведения о поставщиках параметров приложения см. в разделе «Архитектура параметров приложения».

Файлы параметров приложения

Параметры приложения используют два файла: и user.config, где приложение — имя приложения Windows Forms. user.config создается на клиенте при первом хранилище параметров пользовательского область. , напротив, будет существовать до развертывания, если вы определяете значения по умолчанию для параметров. Visual Studio будет включать этот файл автоматически при использовании команды публикации . При создании приложения ClickOnce с помощью Mage.exe или MageUI.exe необходимо убедиться, что этот файл включен в другие файлы приложения при заполнении манифеста приложения.

В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии используйте dotnet-mage.exe вместо Mage.exe. Дополнительные сведения см. в разделе ClickOnce для .NET.

В приложении Windows Forms, не развернутом с помощью ClickOnce, файл app.exe.config> приложения хранится в каталоге приложения, а файл user.config хранится в папке «Документы пользователя» и Параметры. В приложении > находится в каталоге приложений внутри кэша приложений ClickOnce, а конфигурация user.config находится в каталоге данных ClickOnce для этого приложения.

Независимо от способа развертывания приложения параметры приложения обеспечивают безопасный доступ на чтение к app.exe.config> и безопасный доступ на чтение и запись к user.config.

В приложении ClickOnce размер файлов конфигурации, используемых параметрами приложения, ограничивается размером кэша ClickOnce. Дополнительные сведения см. в обзоре кэша ClickOnce.

.NET Core и .NET 5 или более поздней версии

В настоящее время публикуемая сборка .NET Core должна быть подписана с помощью файла ключа строгого имени. Если это не так, ApplicationSettingsBase.Upgrade метод не копирует параметры правильно после новой публикации ClickOnce. Вы можете указать строгое имя в свойствах проекта .NET Core в разделе «Строгое именование сборки>«.

Обновление версий

Так же, как и каждая версия приложения ClickOnce изолирована от всех остальных версий, параметры приложения для приложения ClickOnce также изолированы от параметров для других версий. Когда пользователь обновляется до более поздней версии приложения, параметры приложения сравнивают последние (самые нумерованные) версии с параметрами, предоставленными обновленной версией, и объединяет параметры в новый набор файлов параметров.

В следующей таблице описывается, как параметры приложения определяют, какие параметры следует копировать.

Тип изменения Действие обновления
Параметр, добавленный в

Новый параметр объединяется в конфигурацию app.exe.config> текущей версии.
Параметр удален из

Старый параметр удаляется из конфигурации app.exe.config> текущей версии
Значение по умолчанию изменено; Локальный параметр по-прежнему установлен на исходное значение по умолчанию в user.config Параметр объединяется с текущей конфигурацией user.config текущей версии с новым значением по умолчанию.
Значение по умолчанию изменено; параметр, не используемый по умолчанию в user.config Параметр объединяется в конфигурацию user.config текущей версии с сохраненным значением, не используемым по умолчанию.

Если вы создали собственный класс оболочки параметров приложения и хотите настроить логику обновления, можно переопределить Upgrade метод.

Параметры ClickOnce и роуминга

ClickOnce не работает с перемещаемыми параметрами, что позволяет файлу параметров следовать за вами на компьютерах в сети. Если вам нужны перемещаемые параметры, необходимо либо реализовать поставщик параметров приложения, который хранит параметры по сети, либо разработать собственные классы параметров для хранения параметров на удаленном компьютере. Дополнительные сведения о поставщиках параметров см. в разделе «Архитектура параметров приложения».

Связанный контент

  • Развертывание и безопасность технологии ClickOnce
  • Общие сведения о параметрах приложений
  • Общие сведения о кэше ClickOnce
  • Доступ к локальным и удаленным данным в приложениях ClickOnce

Практическое руководство. Использование Windows SDK в классическом приложении Windows

При создании классического проекта Windows в Visual Studio он предназначен для последней версии пакета SDK для Windows, установленного Visual Studio по умолчанию. Visual Studio устанавливает версию пакета SDK при установке рабочей нагрузки C++ Desktop. Пакет SDK для Windows поддерживает написание кода для Windows 7 с пакетом обновления 1 (SP1) и более поздних версий. Дополнительные сведения о целевых версиях Windows см. в разделе «Использование заголовков Windows» и «Обновление WINVER» и _WIN32_WINNT.

При обновлении существующего проекта вы можете использовать целевой пакет SDK для Windows, указанный в проекте. Вы также можете перенацелить проект, чтобы использовать последний пакет SDK для Windows. Благодаря последнему пакету SDK для Windows вы получите преимущества поддержки последних операционных систем и языковых стандартов.

Использование подходящего пакета SDK для Windows для проекта

Начиная с Visual Studio 2015 библиотека среды выполнения C (CRT) разделена на две части: одна часть, ucrtbase, содержит стандартные функции C и CRT, которые можно использовать в универсальных приложениях Windows. Эта библиотека теперь называется универсальной библиотекой CRT или UCRT и перемещена в пакет SDK для Windows. UCRT содержит множество новых функций, таких как функции C99, необходимые для поддержки последних стандартов языка C++. Другая часть исходной CRT — vcruntime. Он содержит код поддержки среды выполнения C, запуска и завершения, а также все остальное, что не входит в UCRT. Библиотека vcruntime устанавливается вместе с компилятором И набором инструментов C++ в Visual Studio. Дополнительные сведения см. в разделе о функциях библиотеки CRT.

Теперь UCRT — это системный компонент, установленный в каждой версии Windows 10 и более поздних версий. Он также доступен в качестве устанавливаемого компонента для всех предыдущих поддерживаемых версий Windows. Пакет SDK для Windows можно использовать для целей всех поддерживаемых версий Windows. Полный список поддерживаемых операционных систем см. в пакете SDK для Windows.

Чтобы перенацелить проекты на использование последнего пакета SDK для Windows при обновлении с версии проекта до Visual Studio 2015, выполните следующие действия:

Назначение последней версии пакета SDK для Windows

  1. Убедитесь, что установлен последний пакет SDK для Windows. Пакет SDK для Windows устанавливается в рамках разработки классических приложений с помощью рабочей нагрузки C++ в Установщике Visual Studio. Автономная версия доступна в пакете SDK для Windows.
  2. Откройте контекстное меню узла проекта и выберите проект Retarget. (В более ранних версиях Visual Studio выберите Версия пакета SDK для retarget.) Откроется диалоговое окно « Действия решения проверки». Review Solution Actions.
  3. В раскрывающемся списке версий целевой платформы выберите версию пакета SDK для Windows, которую вы хотите использовать. Как правило, рекомендуется выбрать последнюю установленную версию. Нажмите кнопку «ОК«, чтобы применить изменение. 8.1 в этом контексте относится к пакету SDK для Windows 8.1. Если этот шаг выполнен успешно, в окне вывода появится следующее сообщение. Retargeting End: 1 completed, 0 failed, 0 skipped
  4. Откройте диалоговое окно свойств проекта. В разделе «Общие свойства > конфигурации» обратите внимание на значения версии целевой платформы Windows. Изменение значения на данном этапе действует аналогично данной процедуре. Дополнительные сведения см. в разделе Страница свойств «Общие» (проект). Target Platform property in the Property Pages dialog.Это действие приводит к изменению значений макросов проекта, содержащих пути к файлам заголовка и файлам библиотеки. Чтобы узнать, что изменилось, откройте раздел каталогов Visual C++ диалогового окна «Свойства проекта». Выберите одно из свойств, например «Включить каталоги«. Затем откройте раскрывающийся список значения свойства и нажмите кнопку «. Откроется диалоговое окно Каталоги включения . Include Directories dialog box.Нажмите кнопку «Макросы» и прокрутите список макросов >> до макросов Windows SDK, чтобы просмотреть все новые значения. List of Windows SDK Macros.
  5. Повторите процедуру перенацеления для других проектов решения, по мере необходимости и перестройте решение.

Изменение целевой платформы для пакета SDK для Windows 8.1

  1. Откройте контекстное меню узла проекта в Обозреватель решений и выберите проект Retarget. (В более ранних версиях Visual Studio выберите Версия пакета SDK для retarget.)
  2. В раскрывающемся списке версий целевой платформы выберите 8.1.

Практическое руководство. Изменение требуемой версии .NET Framework и набора средств платформы

Файл проекта Visual Studio C++ можно изменить, чтобы указать другие версии набора инструментов платформы C++. Также можно указать другие версии Windows SDK и .NET Framework. (Изменить версию .NET Framework можно только для проектов C++/CLI). В новом проекте используется платформа .NET Framework по умолчанию и набор инструментов версии Visual Studio, используемой для создания проекта. Все эти значения можно изменить в файле VCXPROJ, чтобы использовать одну и ту же базу кода для каждого целевого объекта компиляции.

Набор инструментов платформы

Набор инструментов платформы состоит из компилятора C++ (cl.exe) и компоновщика (link.exe) вместе со стандартными библиотеками C/C++. Studio 2015, Visual Studio 2017 и Visual Studio 2019 совместимы на уровне двоичного кода. Об этом свидетельствует основной номер версии набора инструментов, который остался равным 14. Проекты, скомпилированные в Visual Studio 2019 или Visual Studio 2017 обратно совместимы на уровне ABI с проектами, скомпилированными в Visual Studio 2017 или Visual Studio 2015. Дополнительный номер версии обновляется на 1 для каждой версии с выпуска Visual Studio 2015:

  • Visual Studio 2015: v140
  • Visual Studio 2017: v141
  • Visual Studio 2019: v142
  • Visual Studio 2022: v143

Эти наборы инструментов поддерживают .NET Framework 4.5 и более поздних версий.

Visual Studio также поддерживает настройку для различных версий для проектов C++. Вы можете использовать последнюю версию интегрированной среды разработки Visual Studio для редактирования и сборки проектов, созданных в более ранних версиях Visual Studio. При этом не требуется обновлять проект, чтобы в нем использовалась новая версия набора инструментов. На компьютере должны быть установлены более ранние версии наборов инструментов. Дополнительные сведения см. в разделе Использование собственной настройки для использования различных версий в Visual Studio. Например, в Visual Studio 2015 можно выбрать .NET Framework 2.0 в качестве целевой платформы, но необходимо использовать более раннюю версию набора инструментов, поддерживающую .NET Framework 2.0.

Целевая платформа (только для проектов C++/CLI)

При изменении целевой версии платформы одновременно изменяется набор инструментов платформы для обеспечения поддержки этой версии. Например, при выборе .NET Framework 4.5 в качестве целевой платформы необходимо использовать совместимый набор инструментов платформы. Эти наборы инструментов включают Visual Studio 2015 (версия 140), Visual Studio 2013 (версия 120) или Visual Studio 2012 (версия 110). При выборе .NET Framework 2.0, 3.0, 3.5 и 4 в качестве целевой платформы можно использовать пакет SDK для Windows 7.1.

Создавая пользовательские наборы инструментов платформы, можно расширить поддержку целевой платформы. Дополнительные сведения см. в блоге по Visual C++ Нативное многоплатформенное нацеливание в C++ .

Изменение требуемой версии .NET Framework

  1. В обозревателе решенийVisual Studio выберите проект. В строке меню откройте меню Проект и выберите Выгрузить проект. Это выгружает файл проекта (VCXPROJ) для вашего проекта.

Примечание. Проект на языке C++ не может быть загружен, пока вы редактируете файл проекта в Visual Studio. Однако можно использовать другой редактор, например блокнот, чтобы изменить файл проекта, пока проект загружен в Visual Studio. Visual Studio определяет, что файл проекта был изменен и отображает запрос о необходимости перезагрузить проект.

Изменение набора инструментов платформы

  1. В строке меню Visual Studio выберите Проект>Свойства, чтобы открыть диалоговое окно Страницы свойств для вашего проекта.
  2. В верхней части диалогового окна Страницы свойств в раскрывающемся списке Конфигурация выберите Все конфигурации.
  3. В диалоговом окне выберите страницу свойств Свойства конфигурации>Общие.
  4. На странице свойств щелкните Набор инструментов платформы и выберите необходимый набор инструментов из раскрывающегося списка. Например, если вы установили набор инструментов Visual Studio 2010, выберите Visual Studio 2010 (версия 100) для использования в проекте.
  5. Чтобы сохранить внесенные изменения, нажмите кнопку OK.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *