Поделиться через


Развертывание и отладка приложений UWP

В этой статье описываются шаги для достижения различных целей развертывания и отладки.

Microsoft Visual Studio позволяет развертывать и отлаживать приложения универсальной платформы Windows (UWP) на различных устройствах с Windows 10. Visual Studio будет обрабатывать процесс создания и регистрации приложения на целевом устройстве.

Выбор целевого объекта развертывания

Чтобы выбрать цель, выберите в раскрывающемся списке "Цель отладки" рядом с кнопкой “Начать отладку” то, куда вы хотите развернуть приложение. После выбора целевого объекта выберите начать отладку (F5) для развертывания и отладки в этом целевом объекте или выберите CTRL+F5, чтобы просто развернуть его в этом целевом объекте.

список целевых устройств отладки

  • симулятор развернет приложение в имитированной среде на текущем компьютере разработки. Этот параметр доступен только в том случае, если целевая платформа приложения с минимальной версией не превышает операционную систему на вашем устройстве разработки.
  • Локальный сервер развернет приложение на вашем текущем компьютере разработки. Этот параметр доступен только в том случае, если целевая платформа приложения с минимальной версией не превышает операционную систему на вашем устройстве разработки.
  • Удаленная машина позволит указать удаленную целевую систему для развертывания приложения. Дополнительные сведения о развертывании на удаленном компьютере см. в уточнениеудаленного устройства.
  • устройство развернет приложение на устройстве, подключённом через USB. Устройство должно быть разблокировано для разработчиков, и экран должен быть разблокирован.
  • Целевой объект эмулятора будет загружаться и развертывать приложение в эмуляторе с конфигурацией, указанной в имени. Эмуляторы доступны только на компьютерах с поддержкой Hyper-V под управлением Windows 8.1 или более поздней версии.

Отладка развернутых приложений

Visual Studio также может подключиться к любому выполняющемуся процессу приложения UWP, выбрав Отладка, а затем Подключение к процессу. Присоединение к выполняющемуся процессу не требует исходного проекта Visual Studio, но загрузка символов процесса значительно поможет при отладке процесса, для которого у вас нет исходного кода.

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

Диалоговое окно

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

Приложения UWP можно разрабатывать и компилировать на Windows 8.1 или более поздней версии, но для запуска требуется Windows 10. Если вы разрабатываете приложение UWP на компьютере с Windows 8.1, вы можете удаленно отлаживать приложение UWP, работающее на другом устройстве Windows 10, при условии, что узел и целевой компьютер находятся в одной локальной сети. Для этого скачайте и установите средства удаленного доступа для Visual Studio на обоих компьютерах. Установленная версия должна соответствовать существующей версии Visual Studio, выбранной архитектуре (x86, x64) также должна соответствовать версии целевого приложения.

Макет пакета

Начиная с Visual Studio 2015 Update 3, мы добавили возможность для разработчиков указывать путь расположения для их приложений UWP. Это определяет, где макет пакета копируется на диск при создании приложения. По умолчанию это свойство устанавливается относительно корневого каталога проекта. Если это свойство не изменить, поведение останется таким же, как и для предыдущих версий Visual Studio.

Это свойство можно изменить в свойствах отладки проекта.

Если вы хотите включить все файлы макета в пакет при создании пакета для приложения, необходимо добавить свойство <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>проекта.

Чтобы добавить это свойство, выполните указанные ниже действия.

  1. Щелкните проект правой кнопкой мыши и выберите Выгрузить проект.
  2. Щелкните проект правой кнопкой мыши и выберите "Изменить [имя проекта].xxproj (.xxproj будет изменяться в зависимости от языка проекта).
  3. Добавьте свойство и перезагрузите проект.

Указание удаленного устройства

C# и Microsoft Visual Basic

Чтобы указать удаленный компьютер для приложений C# или Microsoft Visual Basic, выберите удаленный компьютер в раскрывающемся списке целевого объекта отладки. Откроется диалоговое окно удаленных подключений, которое позволит указать IP-адрес или выбрать обнаруженное устройство. По умолчанию выбран режим универсальной проверки подлинности . Сведения о том, какой режим проверки подлинности следует использовать, см. в разделе "Режимы проверки подлинности".

Диалоговое окно

Чтобы вернуться к этому диалогу, можно открыть свойства проекта и перейти на вкладку Отладка. Выберите Найти рядом с Удаленная машина:

Вкладка отладки

Чтобы развернуть приложение на удаленном компьютере с предварительной версией Creators Update, вам также потребуется скачать и установить средства удаленной работы Visual Studio на целевом компьютере. Для получения полных инструкций см. инструкции по удаленному ПК. Однако начиная с обновления Creators, ПК также поддерживает удаленное развертывание.

C++ и JavaScript

Чтобы указать целевой объект удаленного компьютера для приложения UWP на C++ или JavaScript:

  1. В обозревателе решений щелкните по проекту правой кнопкой мыши, затем выберите Свойства.
  2. Перейдите к параметрам отладки и в разделе Отладчик для запускавыберите Удалённый компьютер.
  3. Введите Имя машины (или щелкните Найти, чтобы найти его), а затем задайте свойство типа проверки подлинности .

Отладка страниц свойств

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

Инструкции для удаленного компьютера

Замечание

Эти инструкции необходимы только для более ранних версий Windows 10. По состоянию на Creators Update компьютер можно рассматривать как Xbox. То есть, включив обнаружение устройств в меню "Режим разработчика" на ПК и используя универсальную аутентификацию для сопряжения с помощью ПИН-кода и подключения к компьютеру.

Чтобы развернуть на удаленном компьютере, работающем на версии Windows до обновления Creators Update, на целевом компьютере должны быть установлены средства удаленной работы Visual Studio. Удаленный компьютер также должен работать с версией Windows, которая больше или равна значению свойства целевой платформы мин. версия. После установки удаленных средств необходимо запустить удаленный отладчик на целевом компьютере.

Для этого найдите удаленный отладчик в меню "Пуск ", откройте его и, если появится запрос, разрешите отладчику настроить параметры брандмауэра. По умолчанию отладчик запускает проверку подлинности Windows. Для этого потребуются учетные данные пользователя, если вошедший в систему пользователь отличается на двух компьютерах.

Чтобы изменить его на без проверки подлинности, в удалённом отладчике перейдите в раздел "Средства" —>параметры, а затем установите значение "Нет проверки подлинности". После настройки удаленного отладчика необходимо также убедиться, что на хост-устройстве включен режим разработчика. После этого можно развернуть с вашей машины разработки.

Дополнительные сведения см. на странице Центра загрузки Visual Studio.

Передача аргументов отладки командной строки

В Visual Studio 2019 при запуске отладки приложений UWP можно передать аргументы отладки командной строки. Вы можете получить доступ к аргументам отладки командной строки из параметра args в методе OnLaunched класса Application. Чтобы указать аргументы отладки командной строки, откройте свойства проекта и перейдите на вкладку "Отладка ".

Замечание

Это доступно в Visual Studio 2017 (версия 15.1) для C#, VB и C++. JavaScript доступен в более поздних версиях. Аргументы отладки командной строки доступны для всех типов развертывания, кроме симулятора.

Для проектов UWP на C# и VB отображаются аргументы командной строки : поле в разделе Параметры запуска.

Аргументы командной строки

Для проектов C++ и JS UWP вы увидите аргументы командной строки в качестве поля в свойствах отладки.

снимок экрана страниц свойств приложения App 4 с параметрами конфигурации > выбран параметр отладки, отображающий свойство аргументов командной строки в таблице.

После указания аргументов командной строки можно получить доступ к значению аргумента в методе OnLaunched приложения. Объект LaunchActivatedEventArgsargs будет иметь свойство Arguments, значение которого будет установлено на текст в поле аргументов командной строки.

Снимок экрана: аргументы командной строки для C++ и JS.

Режимы проверки подлинности

Существует три режима проверки подлинности для удаленного развертывания компьютера:

  • Универсальный (незашифрованный протокол): при развертывании на удаленном устройстве используйте этот режим проверки подлинности. В настоящее время это касается устройств Интернета вещей, устройств Xbox и HoloLens, а также компьютеров с Windows версии 1703 (Creators Update) или более поздней версии. Универсальный (незашифрованный протокол) должен использоваться только в доверенных сетях. Подключение отладки уязвимо для вредоносных пользователей, которые могут перехватывать и изменять данные, передаваемые между разработкой и удаленным компьютером.
  • Windows: этот режим проверки подлинности предназначен только для удаленного компьютера (рабочего стола или ноутбука) с помощью средств удаленной работы Visual Studio. Используйте этот режим проверки подлинности, если у вас есть доступ к учетным данным пользователя, вошедшего в систему целевого компьютера. Это самый безопасный канал для удаленного развертывания.
  • Нет. Этот режим проверки подлинности предназначен только для удаленного компьютера (рабочего стола или ноутбука) с помощью средств удаленной работы Visual Studio. Используйте этот режим проверки подлинности, когда у вас настроена тестовая машина в среде, где выполнен вход с тестовой учетной записи, и вы не можете ввести учетные данные. Убедитесь, что параметры удаленного отладчика не принимают проверку подлинности.

Дополнительные варианты удаленного развертывания

В выпуске Visual Studio 2015 с обновлением 3 и юбилейным обновлением Windows 10 существуют новые расширенные варианты удаленного развертывания для некоторых устройств Windows 10. Дополнительные параметры удаленного развертывания можно найти в меню отладки для свойств проекта.

К новым свойствам относятся следующие:

  • Тип развертывания
  • Путь регистрации пакета
  • Сохранение всех файлов на устройстве, даже тех, которые больше не являются частью макета

Требования

Чтобы использовать расширенные варианты удаленного развертывания, необходимо выполнить следующие требования:

  • Установите Visual Studio 2015 с обновлением 3 или более позднюю версию Visual Studio с Windows 10 Tools 1.4.1 или более поздней версией (в том числе пакет SDK для Windows 10 юбилейного обновления). Мы рекомендуем использовать последнюю версию Visual Studio с обновлениями, чтобы получить все новые возможности разработки и безопасности.
  • Назначение удаленного устройства Xbox с юбилейным обновлением Windows 10 или компьютера с Windows 10 Creators Update
  • Использование универсального режима проверки подлинности

Страницы свойств

Для приложения UWP на C# или Visual Basic страница свойств будет выглядеть следующим образом.

Свойства CS или VB

Для приложения UWP на C++ страница свойств будет выглядеть следующим образом.

свойства Cpp

Копирование файлов на устройство

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

Путь регистрации пакета , указанный при копирования файлов на устройство — это физическое расположение на удаленном устройстве, где копируются файлы. Этот путь можно указать как любой относительный путь. Расположение, в котором развертываются файлы, будет относительным к корневому каталогу файлов разработки, который может меняться в зависимости от целевого устройства. Указание этого пути полезно для нескольких разработчиков совместного использования одного устройства и работы с пакетами с некоторой дисперсией сборки.

Замечание

Копирование файлов на устройство в настоящее время поддерживается на Xbox под управлением Windows 10 Anniversary Update и на компьютерах под управлением Windows 10 Creators Update.

На удаленном устройстве макет копируется в следующее расположение по умолчанию: \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

Регистрация макета из сети

При выборе регистрации макета с помощью сети, вы можете создать макет пакета в сетевом ресурсе, а затем зарегистрировать его на удалённом устройстве прямо через сеть. Для этого необходимо указать путь к папке макета (сетевую папку), доступную с удаленного устройства. Свойство пути к папке Layout — это путь относительно компьютера под управлением Visual Studio, а свойство пути регистрации пакета совпадает с тем же путем, но указано относительно удаленного устройства.

Чтобы успешно зарегистрировать макет из сети, сначала необходимо сделать путь к папке макета, указанный в , общей сетевой папкой. Для этого щелкните правой кнопкой мыши папку в проводнике, выберите "Поделиться с конкретными людьми", а затем выберите пользователей, с >которыми вы хотите предоставить общий доступ к папке. При попытке зарегистрировать макет из сети вам будет предложено предоставить учетные данные, чтобы убедиться, что вы регистрируетесь в качестве пользователя с доступом к общей папке.

Дополнительные сведения см. в следующих примерах:

  • Пример 1 (локальная папка макета, доступная как сетевая папка):

    • Путь к папке макета = D:\Layouts\App1
    • путь регистрации пакета = \\NETWORK-SHARE\Layouts\App1
  • Пример 2 (папка макета сети):

    • Путь к папке макета = \\NETWORK-SHARE\Layouts\App1
    • путь регистрации пакета = \\NETWORK-SHARE\Layouts\App1

При первой регистрации макета через сеть ваши учетные данные будут сохранены в кэше на целевом устройстве, поэтому вам не нужно многократно вводить их. Чтобы удалить кэшированные учетные данные, можно использовать средствоWinAppDeployCmd.exe из пакета SDK для Windows 10 с командой deletecreds .

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

Замечание

регистровая схема из сети в настоящее время поддерживается на Xbox, работающих под управлением Windows 10 Anniversary Update, и на ПК под управлением Windows 10 Creators Update.

На удаленном устройстве макет регистрируется в следующем расположении по умолчанию в зависимости от типа устройства: Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles — это символическая ссылка на путь регистрации пакета ПК не использует символическую ссылку и вместо этого напрямую регистрирует путь регистрации пакета

Параметры отладки

На Windows 10 производительность запуска приложений UWP улучшается за счет упреждающего запуска, а затем приостановки приложений в технике, называемой предзагрузкой. Многие приложения не должны делать ничего специального для работы в этом режиме, но некоторым приложениям может потребоваться изменить их поведение. Для отладки любых проблем в этих путях кода можно начать отладку приложения из Visual Studio в режиме предварительного запуска.

Отладка поддерживается как из проекта Visual Studio (отладка —>другие целевые объекты отладки —>отладка универсального приложения Windows с предварительным запуском), так и для приложений, уже установленных на компьютере (отладка —>другие целевые объекты отладки —>отладка установленного пакета приложений, посредством установки флажка Активировать приложение с помощью предварительного запуска). Дополнительные сведения см. в разделе Предварительный запуск UWP.

Можно задать следующие параметры развертывания на странице свойств Debug запускаемого проекта:

  • Разрешить обратную петлю в локальной сети

    По соображениям безопасности приложение UWP, установленное в стандартном режиме, не может выполнять сетевые вызовы к устройству, на котором он установлен. По умолчанию развертывание Visual Studio создает исключение из этого правила для развернутого приложения. Это исключение позволяет тестировать процедуры связи на одном компьютере. Перед отправкой приложения в Microsoft Store необходимо протестировать приложение без исключения.

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

    • На странице свойств отладки C# и Visual Basic снимите флажок Разрешить локальной сети.
    • На странице свойств отладки JavaScript и C++ задайте значение Allow Local Network Loopback значение No.
  • Не запускайте, а отладьте мой код при запуске приложения

    Чтобы настроить развертывание для автоматического запуска сеанса отладки при запуске приложения:

    • На странице свойств C# и Visual Basic Debug установите флажок "Не запускать, но отлаживать мой код при запуске".
    • На странице свойств отладки JavaScript и C++ задайте значение запуска приложения значение Да.

Символы

Файлы символов содержат множество очень полезных данных при отладке кода, таких как переменные, имена функций и адреса точек входа, что позволяет лучше понять исключения и порядок выполнения вызовов. Символы для большинства вариантов Windows доступны через Microsoft Symbol Server или их можно скачать для более быстрого автономного поиска на сайте Загрузка Пакетов Символов Windows.

Чтобы задать параметры символов для Visual Studio, выберите Инструменты > параметры, а затем перейдите к Отладка > Символы в диалоговом окне.

Диалоговое окно

Чтобы загрузить символы в сеанс отладки с WinDbg, задайте для переменной расположение пакета символов. Например, при выполнении следующей команды будут загружаться символы из сервера символов Майкрософт, а затем кэшировать их в каталоге C:\Symbols:

.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload

Можно добавить дополнительные пути с помощью ‘;’ разделителя или использовать .sympath+ команду. Для более продвинутых операций с символами, использующих WinDbg, см. открытые и закрытые символы.

WinDbg

WinDbg — это мощный отладчик, который поставляется в составе набора средств отладки для Windows, который входит в пакет SDK для Windows. Установка пакета SDK для Windows позволяет устанавливать средства отладки для Windows в качестве автономного продукта. Хотя очень полезно для отладки машинного кода, мы не рекомендуем WinDbg для приложений, написанных в управляемом коде или HTML5.

Чтобы использовать WinDbg с приложениями UWP, необходимо сначала отключить управление временем жизни процесса (PLM) для пакета приложения с помощью PLMDebug, как это описано в разделе "Средства тестирования и отладки для управления жизненным циклом процессов (PLM)".

plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"

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

Одной из самых популярных команд в WinDbg является !analyze -v, которая используется для получения подробной информации о текущем исключении, включая:

  • FAULTING_IP: указатель инструкций во время сбоя
  • EXCEPTION_RECORD: адрес, код и флаги текущего исключения
  • STACK_TEXT: трассировка стека до исключения

Для полного списка всех команд WinDbg см. в команд отладчика.