Фоновая передача данных windows 10

Ограничение потребления трафика системой и приложениями задаётся в панели Параметры → Сеть и Интернет → Использование данных. Из поиска на панели задач перейти сразу в нужный раздел параметров поможет запрос Параметры использования данных.

На странице Использование данных нужно выбрать сетевое соединение, для которого требуется задать лимит потребления трафика в выпадающем списке Показать параметры для.

Кликом по кнопке Установить лимит вызывается окно настройки лимита трафика. Лимит может быть ежемесячным, разовым или без ограничений. В первом случае пользователю предлагается указать дату отсчёта потребления трафика, задать его лимит и единицы измерения, во втором — вместо даты отсчёта указать продолжительность действия пакета данных в днях, в третьем — выбрать только дату отсчёта. Изменения применяются нажатием на кнопку Сохранить.

Для изменения ранее установленного лимита достаточно воспользоваться кнопкой Изменить лимит и задать новые параметры в том же окне Установить лимит трафика. После установки или изменения лимита следить за его расходом можно при помощи наглядных индикаторов, указывающих на объём потреблённого и доступного трафика в блоке Лимит трафика.

Удалить установленные ограничения поможет кнопка с говорящим названием Удалить лимит. Эта операция требует подтверждения во избежание случайного удаления настроек.

Обратите внимание на то, что при использовании лимита трафика, новая опция становится доступна и для родственного инструмента Фоновая передача данных. Ограничивать фоновую передачу данных системой и приложениями Microsoft Store можно будет как только будет израсходовано 90% лимита, что удобнее категоричных опций Всегда или Никогда, предлагаемых по умолчанию.

Microsoft с момента появления Windows 10 получила массу претензий от пользователей дорогостоящих лимитных интернет-подключений. Кое-какие решения по части выживания в условиях тарифных планов с помегабайтной оплатой в системе уже имелись. Ещё одно решение этого вопроса Microsoft привнесла вместе с очередным накопительным обновлением Spring Creators Update, и это функция контроля интернет-трафика. Как теперь мы сможем настроить Windows 10, чтобы не получать в конце месяца шокирующие счета от провайдеров мобильного Интернета?

1. Решения для лимитных подключений до Spring Creators Update

Чтобы умерить аппетиты системы и стороннего ПО в плане доступа к Интернету, в «Десятке» по версию Fall Creators Update включительно можем задать подключение как лимитное. При настройке лимитного подключения система переходит в режим экономии трафика, в котором не синхронизируются данные OneDrive, Outlook и прочих продуктов Microsoft, не обновляются UWP-приложения, не загружаются обновления, кроме особо важных, отключаются прочие сообщения с сетью. Для большей экономии можем отключить фоновую активность UWP-приложений, работающих с Интернетом. А также ограничить доступ к сети сторонним программам в их настройках и использовать режимы сжатия данных в браузерах.

Безусловно, эти меры помогут сэкономить трафик, но они не позволят взять под его контроль и установить лимит расхода. Ограничить трафик конкретным объёмом данных в месяц мы можем разве что в части раздачи обновлений на другие компьютеры. Но по умолчанию настроенная раздача обновлений прекращается при задании подключения как лимитного. Что же изменилось в Spring Creators Update?

2. Лимитирование трафика на борту Windows 10 Spring Creators Update

Отныне мы можем сами себе устанавливать лимит расхода интернет-трафика, причём для всего ПО системы. В «Десятку» внедрена функция «Лимит трафика», где можно указать определённый объём отправляемых и получаемых данных на то или иное количество календарных дней. Но это не радикальный инструмент с резким вырубанием Интернета при превышении установленного лимита. Его превышение даёт системе зелёный свет для отключения фоновой активности некоторых системных функций и служб. Нам же, пользователям предоставляется информация к сведению – мол, так и так, заданный лимит достигнут. Как нам далее поступать – сёрфить или нет, скачивать что-то или нет – решаем только мы сами. Как всё это выглядит?

Подраздел «Использование данных» в составе раздела «Сеть и Интернет» штатных параметров ранее служил только для получения статистики о расходе трафика отдельными программами. В апрельском обновлении он пополнился настройками этой самой функции «Лимит трафика».

Здесь можем выбрать то или иное интернет-подключение, не суть важно оно проводное, беспроводное, мобильное или спутниковое. Жмём кнопку «Установить лимит» и выбираем тип лимита — ежемесячно, разово, без ограничений.

Для ежемесячного типа указываем дату отсчёта — число активации тарифного плана. Затем задаём, собственно, лимит – то или иное количество Мб или Гб данных. Жмём «Сохранить».

Для разового типа устанавливаем срок действия в пределах 60-ти дней. И также, как в предыдущем случае, задаём лимит и сохраняем.

После чего увидим справочную информацию – сколько дней осталось до конца заданного периода, дату завершения этого периода, количество использованного объёма данных и оставшегося до назначенного предела.

Как только лимит трафика будет превышен, увидим системное уведомление об этом.

Тотчас же будет приостановлена синхронизация OneDrive, прекратится фоновая активность ряда системных служб и Центра обновления. Для последнего подключение будет значиться как лимитное со всеми вытекающими последствиями – скачиванием только критически важных обновлений.

Скачать все подряд обновления и синхронизировать содержимое OneDrive сможем только вручную.

Тип лимита «без ограничений» — это просто отслеживание использованного трафика в рамках 28-дневного периода. Он не предусматривает установку лимита по объёму данных, и, соответственно, система никак и ни на что не реагирует. Это лишь информация к сведенью.

Установленный лимит в любой момент можно перенастроить или удалить вовсе.

Ограничение фоновой активности UWP-приложений в рамках работы функции «Лимит трафика» не предусматривается, эта возможность предлагается нам отдельной настройкой – «Фоновая передача данных».

Читайте также:  Суммировать если ячейка содержит текст

Активность универсальных приложений ограничивается как в рамках установленного лимита, так и без него. Т. е. урезать доступ к Интернету штатному Скайпу, приложениям «Почта», «Календарь», «Музыка Groove», «Люди», «Кино и ТВ» и прочим мы сможем для любого подключения, вне зависимости от настроенных для него ограничений. В рамках же действия установленного лимита UWP-приложения можно ограничить не сразу, а с момента, когда останется 10% из установленного лимитного объёма данных.

3. Все настройки Windows 10 для лимитных подключений

Как видим, функция «Лимит трафика» — это в сути своей и есть назначение подключения как лимитного, только с возможностью отсрочки активации этой настройки. Это, конечно, не идеальный инструмент для контроля дорогостоящего трафика, но с нашим осознанным участием может стать вполне неплохим решением для тарифов с помегабайтной оплатой свыше установленного провайдером бесплатного объёма данных. Что же теперь, после обновления до Spring Creators Update «Десятка» может предложить пользователям лимитных подключений? Это её и старые, и новые возможности:

    Установка подключения как лимитного – эту функцию Windows 10 унаследовала от Windows 8.1, и она по-прежнему является первоочередным решением;

  • Рассмотренные выше новинки апрельского обновления – функция «Лимит трафика» и настройки ограничения фоновой передачи данных;
  • Отключение фоновой активности отдельных UWP-приложений;
  • Отключение синхронизации ленты активности Timeline. Отключение её синхронизации, кстати, не предусматривается ни в режиме действия лимита трафика, ни при ограничении фоновой передачи данных;

    Отключение автоматического обновления UWP-приложений и «живых» плиток в Microsoft Store.

    4. Эффективные решения и радикальные меры

    Отключение синхронизации данных, ограничение активности Центра обновлений и UWP-контента – всё это хорошо, но обычно активными пожирателями трафика являемся именно мы, пользователи. Наверняка большинство при анализе статистики загружаемых и выгружаемых в Интернет данных на вершине перечня обнаружат пользовательское ПО – браузер, загрузчик файлов, торрент-качалку и т. п.

    Здесь уже операционная система, сколь бы она разумна ни была, нам не поможет. При лимитном интернет-подключении нам нужно отказаться от привычки тянуть с Интернета всё подряд и присмотреть себе браузер с функцией сжатия данных. В числе браузеров, поддерживающих штатно такую возможность – Opera и Яндекс. Браузер. Для Chrome существует расширение «Экономия трафика». В Chrome, Firefox и любой браузер с поддержкой их расширений можно установить блокировщик рекламы и контент-блокировщик – радикальное, но эффективное решение. Штатный блокировщик контента есть на борту мегафункционального браузера «из коробки» Vivaldi. С блокировщиками контента сможем работать в жесточайшем режиме выживания и видеть Интернет без картинок и анимации.

    Используйте фоновую передачу данных API, чтобы копировать файлы надежно по сети. API фоновой передачи данных обеспечивает дополнительные функции отправки и скачивания, которые работают в фоновом режиме в случае приостановки приложения и сохраняются в случае завершения работы приложения. API контролирует состояние сети и автоматически приостанавливает, а затем возобновляет передачу данных в случае потери соединения. Кроме того, эти процессы передачи данных регистрируются приложениями Data Sense и Battery Sense, а это означает, что процесс скачивания корректируется в зависимости от текущего состояния подключения и батареи устройства. API идеально подходит для отправки и скачивания больших файлов с помощью HTTP(S). Протокол FTP также поддерживается, но только для скачиваний.

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

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

    Использование Windows.Networking.BackgroundTransfer

    Как работает передача в фоновом режиме

    Когда приложение использует функцию фоновой передачи данных для запуска передачи данных, настройка и инициализация запроса производятся с помощью объектов класса BackgroundDownloader или BackgroundUploader. Каждая операция передачи данных обрабатывается системой отдельно и независимо от вызывающего приложения. Если вы хотите отобразить состояние передачи данных в пользовательском интерфейсе приложения, можно использовать информацию о ходе выполнения, при этом приложение может приостанавливать, возобновлять, отменять передачу данных или даже считывать данные в процессе их передачи. Способ, которым система обрабатывает передачу данных, позволяет разумно использовать электроэнергию и предотвращать проблемы, которые могут возникнуть, когда работа подключенного приложения нарушается такими событиями, как приостановка или завершение работы либо внезапные изменения состояния сети.

    Выполнение запросов файлов, которые прошли проверку подлинности, с помощью фоновой передачи данных

    Функция передачи данных в фоновом режиме предоставляет методы, поддерживающие базовые учетные данные сервера и прокси-сервера, файлы cookie, а также настраиваемые заголовки HTTP (с помощью метода SetRequestHeader) для каждой операции передачи.

    Как эта функция адаптируется к изменениям состояния сети или неожиданным выключениям компьютера?

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

    Например, в тарифной политике, установленной для операции, может быть указано, что операция должна автоматически приостанавливаться, если устройство используется в сети с лимитным тарифным планом. Передача данных автоматически возобновляется (или перезапускается) при подключении устройства к "неограниченной" сети. Подробнее о задании тарифов для сетей см. в разделе NetworkCostType.

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

    Примечание

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

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

    Читайте также:  Телевизор с подсветкой ambilight samsung
    Состояние устройства UnrestrictedOnly По умолчанию Всегда
    Подключение к WiFi Разрешена Разрешена Разрешена
    Лимитное подключение, не в роуминге, лимит данных не достигнут, настроен на отслеживание расходов по тарифному плану Запрещена Разрешена Разрешена
    Лимитное подключение, не в роуминге, лимит данных не достигнут, настроен на отслеживание превышения лимита Запрещена Запрещена Разрешена
    Лимитное подключение, в роуминге, лимит данных не достигнут Запрещена Запрещена Разрешена
    Лимитное подключение, лимит данных превышен Это состояние возможно только в случае, если пользователь выбирает "Ограничить фоновую передачу данных в Data Sense". Запрещена Запрещена Запрещена

    Отправка файлов

    При использовании функции передачи данных в фоновом режиме передача происходит в UploadOperation, который обеспечивает доступ к методам управления, позволяющим начинать операцию заново или отменять ее. События приложения (например, приостановка или завершение работы) и изменения сетевого подключения обрабатываются системой автоматически в соответствии с UploadOperation. Отправки будут продолжаться в периоды приостановки приложения, либо будут приостанавливаться и сохраняться в случаях завершения работы приложения. Можно также установить свойство CostPolicy, которое определяет, будет ли ваше приложение начинать отправки, если подключение к Интернету осуществляется через сеть с лимитным тарифным планом.

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

    Отправка одного файла

    Создание отправки начинается с BackgroundUploader. Этот класс используется для предоставления методов, которые позволяют приложению настраивать параметры отправки перед созданием итоговой операции UploadOperation. В следующем примере показано, как это сделать с необходимыми объектами Uri и StorageFile.

    Определение файла и места назначения отправки

    Прежде чем приступить к созданию UploadOperation, нужно определить URI местоположения отправки и файл, который будет отправлен. В следующем примере значение uriString заполняется строкой, введенной в пользовательском интерфейсе, а значение file определяется объектом StorageFile, возвращенным в результате операции PickSingleFileAsync.

    Создание и инициализация операции отправки

    В предыдущем шаге значения uriString и file передаются экземпляру следующего примера, UploadOp, где они применяются для настройки и запуска новой операции отправки. Сначала проводится анализ uriString для создания необходимого объекта Uri.

    Затем на основе свойств предоставленного StorageFile (file) BackgroundUploader заполняет заголовок запроса и задает свойство SourceFile с использованием объекта StorageFile. Далее вызывается метод SetRequestHeader для вставки имени файла, предоставленного в виде строки, и свойства StorageFile.Name.

    Обратите внимание на асинхронные вызовы метода, определенные при помощи объектов Promise на JavaScript. Рассмотрим строку из последнего примера:

    За вызовом асинхронного метода следует оператор "then", указывающий определенные приложением методы, которые вызываются при возврате результата из асинхронного метода. Подробнее об этой технике программирования см. в разделе об асинхронном программировании на JavaScript с использованием объектов Promise.

    Отправка нескольких файлов

    Определение файлов и места назначения для отправки

    В сценарии, включающем несколько файлов, которые передаются одним UploadOperation, процесс начинается обычным способом, указывая необходимый универсальный код ресурса (URI) назначения и сведения о локальном файле. Аналогично примеру из предыдущего раздела, универсальный код ресурса (URI) предоставляется в виде строки пользователем и FileOpenPicker можно использовать для указания файлов также через пользовательский интерфейс. Однако в этом сценарии приложение должно вызвать метод PickMultipleFilesAsync, чтобы разрешить выбор нескольких файлов через пользовательский интерфейс.

    Создание объектов на основе предоставленных параметров

    В следующих двух примерах используется один метод из примера, startMultipart, который вызывался в конце последнего этапа. В целях обучения код в методе, создающем массив объектов BackgroundTransferContentPart, отделен от кода, создающего итоговую операцию UploadOperation.

    Сначала строка URI, указанная пользователем, инициализируется как Uri. Затем массив объектов IStorageFile (files), переданный этому методу, проходит итерацию, каждый объект используется для создания нового объекта BackgroundTransferContentPart, который затем помещается в массив contentParts.

    Создание и инициализация операции отправки, состоящей из нескольких этапов

    Когда наш массив contentParts заполнен всеми объектами BackgroundTransferContentPart, каждый из которых представляет IStorageFile для отправки, мы готовы вызвать CreateUploadAsync, используя Uri для указания, куда будет направлен запрос.

    Перезапуск прерванных операций отправки

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

    Перед тем как определить функцию, перечисляющую сохраненные операции, следует создать массив, который будет содержать объекты UploadOperation, возвращенные этой функцией:

    Затем определяем функцию, которая перечисляет сохраненные операции и сохраняет их в нашем массиве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов операции UploadOperation, если она сохраняется при завершении работы приложения, содержится в классе UploadOp, который будет определен ниже в этом разделе.

    Скачивание файлов

    При использовании функции передачи данных в фоновом режиме каждая загрузка происходит в DownloadOperation, который обеспечивает доступ к методам управления, позволяющим приостанавливать, возобновлять, перезапускать и отменять операцию. События приложения (например, приостановка или завершение работы) и изменения сетевого подключения обрабатываются системой автоматически в соответствии с DownloadOperation. Скачивание будет продолжаться в периоды приостановки приложения либо будет приостанавливаться и сохраняться в случаях завершения работы приложения. Для мобильных сетевых сценариев можно установить свойство CostPolicy, которое определяет, будет ли ваше приложение начинать или продолжать скачивание, если подключение к Интернету осуществляется через сеть с лимитным тарифным планом.

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

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

    Настройка и запуск фонового скачивания файла

    В следующем примере демонстрируется способ использования строк, представляющих универсальный код ресурса (URI), и имени файла для создания объекта Uri и класса StorageFile, в который будет помещен запрошенный файл. В этом примере новый файл автоматически помещается в заранее определенное расположение. В качестве альтернативы можно использовать FileSavePicker, это даст пользователям возможность указать расположение для сохранения файла на устройстве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов для операции DownloadOperation, если она сохраняется при завершении работы приложения, содержится в классе DownloadOp, который будет определен ниже в этом разделе.

    Читайте также:  Что слышит заблокированный абонент мтс

    Обратите внимание на асинхронные вызовы метода, определенные при помощи объектов Promise на JavaScript. См. строку 17 предыдущего примера кода:

    За вызовом асинхронного метода следует оператор "then", указывающий определенные приложением методы, которые вызываются при возврате результата из асинхронного метода. Подробнее об этой технике программирования: Асинхронное программирование на JavaScript с использованием объектов Promise.

    Добавление дополнительных методов управления работой

    Уровень управления может быть повышен с помощью реализации дополнительных методов DownloadOperation. Так, чтобы обеспечить возможность отменять операцию, можно добавить в пример выше следующий код.

    Перечисление сохраненных операций при запуске

    После завершения или отмены DownloadOperation все связанные системные ресурсы освобождаются. Однако если приложение завершает работу до того, как происходит одно из этих событий, скачивание будет приостановлено и сохранено в фоновом режиме. В следующих примерах показано, как воспроизвести приостановленное скачивание в новом сеансе приложения.

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

    Затем определяем функцию, которая перечисляет сохраненные операции и сохраняет их в нашем массиве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов для сохраненной операции DownloadOperation, содержится в примере DownloadOp, который будет определен ниже в этом разделе.

    Постобработка

    Новая функция в Windows 10 — возможность выполнения кода приложения после завершения фоновой передачи данных, даже когда приложение не запущено. Например, приложению может потребоваться обновление списка доступных фильмов после завершения скачивания фильма, вместо того, чтобы ваше приложение искало новые фильмы при каждом запуске. Или приложению может потребоваться обработка неудачной передачи файла путем повторения попытки использовать другой сервер или порт. Постобработка вызывается как для успешных, так и для неудачных передач, чтобы ее можно было использовать для реализации логики повтора и пользовательской обработки ошибок.

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

    Постобработка использует новый класс BackgroundTransferCompletionGroup. Этот класс похож на существующий BackgroundTransferGroup в том, что он позволяет вам группировать фоновые передачи данных вместе, но BackgroundTransferCompletionGroup дает возможность указывать фоновую задачу для запуска после завершения передачи.

    Начните фоновую передачу данных с постобработкой следующим образом.

      Создайте объект BackgroundTransferCompletionGroup. Затем создайте объект BackgroundTaskBuilder. Настройте свойство Trigger объекта построителя на объект группы завершения, и свойство TaskEngtyPoint построителя на входную точку фоновой задачи, которая должна выполняться при завершении передачи данных. И, наконец, вызовите метод BackgroundTaskBuilder.Register, чтобы зарегистрировать фоновую задачу. Обратите внимание, что многие группы завершения могут совместно использовать одну точку входа фоновой задачи, но вы можете использовать только одну группу завершения в регистрации фоновой задачи.

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

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

    Тайм-ауты запросов

    Таким образом, следует учитывать два основных сценария тайм-аута подключения.

    При отсутствии ответа на запрос нового подключения для передачи в течение пяти минут такой запрос отменяется.

    Если подключение установлено, любой HTTP-запрос отменяется при отсутствии ответа в течение двух минут.

    Руководство по отладке

    Остановка сеанса отладки в Microsoft Visual Studio сопоставима с закрытием приложения: отправки PUT при этом приостанавливаются, а отправки POST завершаются. Даже в процессе отладки ваше приложение должно перечислить, а затем перезапустить или отменить любые оставшиеся отправки. Например, можно сделать так, чтобы приложение отменяло перечисленные сохранившиеся операции отправки при запуске приложения, если предыдущие операции не имеют значения для данного сеанса отладки.

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

    Если при развертывании вы используете фоновую передачу данных, синхронизация внутреннего кэша активных и завершенных операций передачи может быть нарушена. В результате этого запуск новой операции передачи или взаимодействие с существующими операциями и объектами BackgroundTransferGroup может стать невозможным. В ряде случаев попытка взаимодействия с существующими операциями способна вызвать сбой. Это может произойти, если свойство TransferBehavior задано как Parallel. Такая проблема присуща определенным сценариям во время разработки и не затрагивает конечных пользователей приложения.

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

    • если вы создаете новый проект с таким же именем приложения, как в существующем проекте, но на другом языке (например, не C++, а C#);
    • если вы изменяете архитектуру конечного объекта (например, с x86 на x64) в существующем проекте;
    • если вы изменяете культуру (например, с нейтральной на en-US) в существующем проекте;
    • если вы добавляете или удаляете возможность в манифесте пакета (например, добавляете корпоративную аутентификацию) в существующем проекте.

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

    Чтобы обойти проблему, полностью удалите все версии приложения и повторите развертывание с новым языком, архитектурой, культурой или возможностью. Это можно сделать, используя начальный экран или PowerShell и командлет Remove-AppxPackage.

    Оцените статью
    Добавить комментарий

    Adblock
    detector