все пакеты приложений что это
Руководство по управлению пакетами приложения
Узнайте, как делать пакеты приложения доступными для пользователей, а также как управлять определенными сценариями пакетов.
Версии ОС и распространение пакетов
Разные операционные системы могут запускать разные типы пакетов. Если на устройстве пользователя может быть запущено более одного пакета, Microsoft Store предоставит наиболее подходящий вариант.
Как правило, более поздние версии ОС могут запускать пакеты, предназначенные для предыдущих версий ОС для того же семейства устройств. Windows 10 устройства могут запускать все предыдущие поддерживаемые версии ос (для каждого семейства устройств). На настольных устройствах с Windows 10 можно запускать приложения, которые были созданы для Windows 8.1 или Windows 8; на мобильных устройствах с Windows 10 можно запускать приложения, которые были созданы для Windows Phone 8.1, Windows Phone 8 и даже Windows Phone 7.x. однако клиенты Windows 10/11 получат эти пакеты только в том случае, если приложение не включает пакеты UWP, предназначенные для соответствующего семейства устройств.
вы больше не можете отправлять новые пакеты XAP, созданные с помощью пакетов SDK для Windows Phone 8. x. приложения, которые уже находятся в магазине с пакетами XAP, продолжат работать на Windows 10 Mobile устройствах. Дополнительные сведения см. в этой записи блога.
Удаление приложения из Microsoft Store
Этот параметр переопределяет все настройки видимости, выбранные в ваших отправках.
Этот параметр действует так же, как если вы создали отправку и выбрали пункт Отправить продукт в Store, но запретить его поиск там с помощью параметра Остановить приобретение. Тем не менее вам не нужно создавать новую отправку.
Обратите внимание, что пользователи, которые уже получили это приложение, смогут использовать и скачать его снова (и даже смогут получать обновления, если вы отправите пакеты в дальнейшем).
После того как приложение будет недоступно, вы по-прежнему увидите его в центре партнеров. Если вы решите возобновить публикацию приложения, щелкните Сделать приложение доступным на странице обзора приложения. В течение нескольких часов после подтверждения приложение станет доступно новым пользователям (если параметры в вашей последней отправке не ограничивают его доступность).
Если вы хотите оставить приложения доступным, но не хотите предлагать его новым клиентам, использующим определенную версию ОС, создайте новую отправку и удалите все пакеты для этой версии ОС. Например, если ранее у вас были пакеты для Windows Phone 8.1 и Windows 10, но вы не хотите предлагать приложение новым клиентам, использующим Windows Phone 8.1, исключите из отправки все пакеты Windows Phone 8.1. После того как обновление будет опубликовано, новые клиенты, использующие ОС Windows Phone 8.1 не смогут приобрести приложение (при этом клиенты, уже купившие это приложение, смогут и дальше его использовать). Однако приложение останется доступным для новых клиентов, использующих ОС Windows 10.
Удаление пакетов для ранее поддерживавшегося семейства устройств
При публикации отправки, которое удаляет все пакеты, которые могут выполняться в семействе устройств, которое ранее поддерживалось приложением, новые клиенты не смогут получить приложение в этом семействе устройств. В дальнейшем вы можете в любое время опубликовать еще одно обновление, что вернуть пакеты для этого семейства устройств.
Обратите внимание, что даже после удаления всех пакетов, поддерживающих определенное семейство устройств, существующие клиенты, уже установившие приложение на устройства этого типа, смогут и дальше пользоваться им, а также получать все последующие обновления.
Добавление пакетов для Windows 10 в ранее опубликованное приложение
Как только клиент, использующий ОС Windows 10, получит ваш пакет UWP, вы не можете вернуть данного клиента к использованию пакета для предыдущей версии ОС.
обратите внимание, что номер версии Windows 10ных пакетов должен быть выше, чем для любых используемых пакетов Windows 8, Windows 8.1 и (или) Windows Phone 8,1. Дополнительные сведения см. в разделе Нумерация версий пакета.
Дополнительные сведения о создании пакетов приложений UWP для Магазина см. в разделе Создание пакетов приложений.
Развертывание приложений на вычислительных узлах с помощью пакетов приложений пакетной службы
Пакеты приложений позволяют упростить код в решении пакетной службы Azure, а также упростить управление приложениями, выполняемыми задачами. С помощью пакетов приложений вы можете передать несколько версий приложений, выполняемых вашими задачами (в том числе вспомогательные файлы), а также управлять ими, а затем автоматически развернуть одно или несколько таких приложений на вычислительных узлах в пуле.
Требования к пакетам приложений
Чтобы использовать пакеты приложений, необходимо связать учетную запись хранения Azure с учетной записью пакетной службы.
Существуют ограничения на количество приложений и пакетов приложений в учетной записи пакетной службы, а также на максимальный размер пакета. Дополнительные сведения см. в статье Квоты и ограничения пакетной службы Azure.
Пулы пакетной службы, созданные до 5 июля 2017 г., не поддерживают пакеты приложений (если только они не были созданы после 10 марта 2016 г. с использованием конфигурации облачных служб). Компонент «Пакеты приложений», описываемый в этой статье, заменяет компонент «Приложения пакетной службы», доступный в предыдущих версиях службы.
Общие сведения о приложениях и пакетах приложений
В пакетной службе Azure приложение ссылается на набор двоичных файлов с возможностью управления версиями, которые могут автоматически скачиваться на вычислительные узлы в пуле. Приложение содержит один пакет приложений или несколько, которые представляют разные версии приложения.
Каждый пакет приложения — это ZIP-файл, содержащий двоичные файлы приложения и вспомогательные файлы. Поддерживается только формат ZIP.
Пакеты приложений можно указывать на уровне пула или задачи.
Пакеты приложений уровня пула развертываются на каждом узле в пуле. Развертывание приложений осуществляется во время присоединения узла к пулу, а также когда узел перезагружается или для него пересоздается образ.
Пакеты приложений пула подходят, когда все узлы в пуле будут выполнять задачи задания. Вы можете указать один или несколько пакетов приложений для развертывания при создании пула. Можно также добавить или обновить пакеты существующего пула. Чтобы установить новые пакеты в существующий пул, необходимо перезапустить его узлы.
Пакеты приложений уровня задач развертываются только на вычислительных узлах, на которых запланировано выполнение задач. Развертывание осуществляется перед выполнением командной строки задачи. Если в узле уже развернут указанный пакет приложений и настроена версия, повторное развертывание не инициируется и используется имеющийся пакет.
Пакеты приложений уровня задач полезны в средах с общим пулом, где различные задания выполняются в одном пуле, который не удаляется по завершении задания. Если задание содержит меньше задач, чем число узлов в пуле, пакеты приложений задач помогут минимизировать объем передаваемых данных, так как приложение развертывается только на узлах, на которых выполняются задачи.
Мы также рекомендуем использовать пакеты приложений уровня задач для выполнения небольшого количества задач в сценариях с большими приложениями. Например, приложения задач могут быть полезны для высокопроизводительной предварительной обработки или задачи слияния.
При использовании пакетов приложений задача запуска пула не должна указывать длинный список отдельных файлов ресурсов для установки на узлах. Кроме того, вам не нужно вручную управлять несколькими версиями этих файлов приложения в службе хранилища Azure или на узлах, а также создавать URL-адреса SAS, чтобы предоставить доступ к файлам в своей учетной записи хранения. Пакетная служба работает со службой хранилища Azure в фоновом режиме, обеспечивая хранение пакетов приложений и их развертывание на вычислительных узлах.
Общий размер задачи запуска не должен превышать 32 768 символов, включая файлы ресурсов и переменные среды. Если задача запуска превышает это ограничение, то можно воспользоваться пакетами приложений. Также можно создать ZIP-файл, содержащий файлы ресурсов, передать его в виде большого двоичного объекта в службу хранилища Microsoft Azure, а затем распаковать его из командной строки задачи запуска.
Передача приложений и управление ими
Управление пакетами приложений в учетной записи пакетной службы осуществляется на портале Azure или с помощью API-интерфейсов для управления пакетной службой. В следующих разделах объясняется, как связать учетную запись хранения, а также как добавлять приложения и пакеты приложений и управлять ими на портале Microsoft Azure.
Несмотря на то, что вы можете определить значения приложения в ресурсе Microsoft.Batch/batchAccounts шаблона ARM, в настоящее время невозможно использовать шаблон ARM для отправки пакетов приложений для использования в учетной записи пакетной службы. Их необходимо передать в связанную учетную запись хранения, как описано ниже.
Связывание учетной записи хранения
Чтобы использовать пакеты приложений, необходимо связать учетную запись хранения Azure с учетной записью пакетной службы. Пакетная служба использует связанную учетную запись хранения для хранения пакетов приложений. Мы рекомендуем создать учетную запись хранения специально для учетной записи пакетной службы.
Если вы еще не настроили учетную запись хранения, то на портале Microsoft Azure отобразится предупреждение, когда вы в первый раз щелкнете элемент Приложения в вашей учетной записи пакетной службы. Выберите Учетная запись хранения в окне Предупреждение, а затем снова выберите Учетная запись хранения, чтобы связать учетную запись хранения с учетной записью пакетной службы.
Когда вы свяжете две учетные записи, пакетная служба сможет автоматически развертывать на вычислительных узлах пакеты, хранимые в связанной учетной записи хранения.
Вы не можете использовать пакеты приложений с учетными записями хранения Azure, настроенными с помощью правил брандмауэра, или если для параметра Иерархическое пространство имен задано значение Включено.
Пакетная служба использует службу хранилища Azure для хранения пакетов приложений в виде блочных BLOB-объектов. С вас взимается обычная плата за данные блочных BLOB-объектов, и размер каждого пакета не может превышать максимальный размер блочного BLOB-объекта. Дополнительные сведения см. в разделе Целевые показатели масштабируемости и производительности службы хранилища Azure для учетных записей хранения. Для минимизации расходов вам обязательно следует учитывать размер и количество пакетов приложений, периодически удаляя устаревшие пакеты.
Просмотр текущих приложений
Чтобы просмотреть приложения в учетной записи пакетной службы, в меню навигации слева выберите Приложения.
Если выбрать этот пункт меню, то откроется окно Приложения. В этом окне выводится идентификатор каждого приложения в вашей учетной записи, а также следующие свойства:
Чтобы просмотреть структуру файлов пакета приложения на вычислительном узле, перейдите к учетной записи пакетной службы на портале Microsoft Azure. Выберите Пулы. Затем выберите пул, содержащий вычислительный узел. Выберите вычислительный узел, на котором установлен пакет приложения, и откройте папку applications.
Просмотр сведений о приложении
Чтобы просмотреть подробные сведения о приложении, выберите его в окне Приложения. Вы можете настроить следующие параметры приложения:
Добавление нового приложения
Чтобы создать приложение, добавьте пакет приложения и укажите уникальный идентификатор приложения.
В учетной записи пакетной службы выберите Приложения и нажмите кнопку Добавить.
Введите следующие сведения:
Введенные вами идентификатор приложения и версия должны соответствовать следующим требованиям.
Когда будете готовы, нажмите кнопку Отправить. После отправки ZIP-файла в учетную запись хранения Azure на портале отобразится уведомление. В зависимости от размера загружаемого файла и скорости сетевого подключения это может занять некоторое время.
Добавление нового пакета приложения
Чтобы добавить версию пакета приложения для существующего приложения, выберите приложение в разделе Приложения своей учетной записи пакетной службы, затем нажмите Добавить.
Как и для нового приложения, укажите версию для нового пакета, загрузите ZIP-файл в поле Пакет приложения, а затем выберите Отправить.
Обновление или удаление пакета приложения
Чтобы обновить или удалить существующий пакет приложения, выберите приложение в разделе Приложения своей учетной записи пакетной службы. Щелкните значок многоточия в строке пакета приложения, который требуется изменить, а затем выберите необходимое действие.
При выборе Обновить вы сможете отправить новый ZIP-файл. При этом предыдущий ZIP-файл, отправленный для этой версии, будет заменен.
При выборе Удалить будет предложено подтвердить удаление этой версии. После нажатия кнопки ОК пакетная служба удалит ZIP-файл из учетной записи хранения Azure. Удалив версию приложения по умолчанию, вы удалите настройку Версия по умолчанию для этого приложения.
Установка приложений на вычислительных узлах
Мы узнали об управлении пакетами приложений с помощью портала Microsoft Azure. Теперь можно перейти к их развертыванию на вычислительных узлах, а также их выполнению с помощью задач пакетной службы.
Установка пакетов приложений уровня пула
Чтобы установить пакет приложения на все вычислительные узлы в пуле, укажите ссылки на один или несколько пакетов приложений для пула. Пакеты приложения, которые указываются для пула, устанавливаются на каждый вычислительный узел, когда он присоединяется к пулу, а также когда он перезагружается или для него пересоздается образ.
Если произошел сбой развертывания пакета приложения, то пакетная служба помечает узел как непригодный и на этом узле не планируется выполнение каких-либо задач. В этом случае следует перезапустить этот узел, чтобы повторно инициировать развертывание пакета. Перезапуск узла также возобновляет планирование задач на узле.
Установка пакетов приложений уровня задач
Как и для пакетов уровня пула, укажите ссылки на один или несколько пакетов приложений для задачи. Если на узле запланировано выполнение задачи, скачивание и извлечение пакета осуществляется непосредственно перед выполнением командной строки задачи. Если в пуле уже установлен указанный пакет и настроена версия, скачивание не инициируется и используется имеющийся пакет.
Чтобы установить пакет приложений уровня задач, настройте свойство CloudTask.ApplicationPackageReferences задачи.
Выполнение установленных приложений
Пакеты, указанные для уровня пула или задач, скачиваются и извлекаются в указанный каталог AZ_BATCH_ROOT_DIR на узле. Пакетная служба также создает переменную среды, содержащую путь к указанному каталогу. Командные строки задачи будут использовать эту переменную среды, ссылаясь на приложение в узле.
На узлах Windows переменная имеет следующий формат:
На узлах Linux формат немного отличается. Точки (.), дефисы (-) и символы решетки (#) в переменной среды преобразовываются в символы подчеркивания. Кроме того, обратите внимание, что регистр идентификатора приложения сохраняется. Пример:
Свойства APPLICATIONID и version — это значения, соответствующие версии пакета и приложения, указанных при развертывании. Например, если вы выбираете установку приложения blender версии 2.7 на узлах Windows, то командные строки задачи будут использовать переменную среды для получения доступа к его файлам:
На узлах Linux укажите переменную среды в таком формате. Преобразуйте точки (.), дефисы (-) и знаки номера (#) в нижние подчеркивания и соблюдайте регистр идентификатора приложения:
При передаче пакета приложения можно указать версию по умолчанию для развертывания на вычислительных узлах. Если для приложения указана версия по умолчанию, то на это приложение можно ссылаться без суффикса версии. Версию приложения по умолчанию можно указать на портале Azure в окне Приложения, как показано в разделе Передача приложений и управление ими.
Например, если для приложения blender в качестве версии по умолчанию указана версия 2.7 и задачи ссылаются на следующую переменную среды, то узлы Windows будут выполнять версию 2.7:
В следующем фрагменте кода показан образец командной строки задачи, используемый для запуска версии приложения blender по умолчанию.
Дополнительные сведения о параметрах среды вычислительных узлов см. в разделе Параметры среды для задач.
Обновление пакетов приложений пула
Если для существующего пула уже выполнена настройка пакета приложения, вы можете указать новый пакет для пула. Это означает следующее:
В нашем примере для имеющегося пула настроена версия 2.7 приложения blender (в качестве одного из свойств CloudPool.ApplicationPackageReferences). Чтобы обновить узлы в пуле, используя версию 2.76b, укажите новое свойство ApplicationPackageReference с новой версией, а затем подтвердите изменения.
После настройки новой версии пакетная служба устанавливает версию 2.76b на всех новых узлах, присоединенных к пулу. Чтобы установить версию 2.76b на все узлы, уже имеющиеся в пуле, перезагрузите их или создайте для них новый образ. Обратите внимание: после перезагрузки на узлах остаются файлы предыдущих развертываний пакета.
Как в Windows 8.1 устранить самопроизвольное завершение работы Metro-приложений
П оявление Metro-приложений сделало Windows богаче в плане доступного программного обеспечении, но вместе с тем принесло с собой ряд проблем, связанных с работой этих самых приложений. Возникающие в процессе работы магазинных программ ошибки многообразны, но наиболее распространёнными являются сбои установки и самопроизвольное завершение работы. Об устранении первой ошибки сказано и написано немало, поэтому мы рассмотрим вторую. Итак, самопроизвольное закрытие или сворачивание Metro-приложений.
В Microsoft об этой ошибке знают и уже работают над её устранением. А пока можно попробовать следующее средство. Не панацея, но в некоторых случаях помогает. Откройте редактор реестра, кликните правой кнопкой мыши по разделу HKEY_LOCAL_MACHINE и в контекстном меню выберите опцию «Разрешения».
В открывшемся окошке выберите «ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ» и убедитесь что галочка «Чтение» для этой группы установлена.
Если она снята, установите её и сохраните результат. То же самое проделайте по отношению к другим разделам реестра.
Закончив с реестром, перейдите в системный раздел и откройте свойства каталога Programs Files. Переключитесь на вкладку «Безопасность», нажмите на кнопку «Дополнительно».
И убедитесь, что группа «ВСЕ ПАКЕТЫ ПРИЛОЖЕНИЙ» имеет разрешение «Чтение и выполнение», применяющееся для этой папки и всех подпапок и файлов.
В ином случае назначьте указанные права, предварительно заменив владельца TrustedInstaller текущим пользователем.
Управление пакетами в Windows (часть 1)
Традиционно установка программ в Windows происходит следующим образом: находим дистрибутив, загружаем его на свой компьютер, запускаем программу установки и следуем инструкциям. В принципе процедура несложная, но несколько трудоемкая, особенно много времени тратится на поиск нужного дистрибутива.
Для того, чтобы упростить процесс установки ПО, в Windows добавлена возможность установки ПО из пакетов (package). Такой подход используется в операционных системах Linux, суть его заключается в том, что программы хранятся в специальных хранилищах (репозиториях) в виде пакетов, для управления которыми используется менеджер пакетов (напр. apt в Debian). Таким образом установка приложения сводится к выполнению всего одной команды.
Теперь давайте рассмотрим схему управления пакетами (Package Management), реализованную в Windows. Она состоит из четырех основных составляющих:
• Package Sources — источник пакетов, он же репозиторий. Место, где хранятся установочные пакеты программ. В качестве расположения источника может быть указан URL-адрес в интернете, общая папка в локальной сети или локальная папка на компьютере;
• PackageManagement Providers — провайдеры (поставщики) пакетов, отвечающие за доступ к источникам пакетов. Каждый поставщик может управлять одним или несколькими источниками;
• PackageManagement Core — ядро управления пакетами. Программный интерфейс, обеспечивающий взаимодействие поставщиков с конечными пользователями;
• End User — конечный пользователь, т.е. тот, кто пользуется функционалом Package Management с помощью командлетов PowerShell.
Как следует из схемы, управление пакетами в Windows осуществляется исключительно с помощью PowerShell. Для этой цели предназначен специальный модуль PackageManagement (ранее известный как OneGet), входящий в состав PowerShell начиная с версии 5.0. Для более ранних версий PowerShell модуль можно установить вместе с WMF 5.1 либо отдельно, из репозитория PowerShell Gallery.
В модуль входит 13 командлетов, подробное описание можно найти здесь.
Внимание!
Перед тем, как приступать к управлению пакетами, обязательно проверьте, разрешено ли у вас выполнение скриптов. Вывести текущую политику выполнения скриптов можно командой:
По умолчанию выполнение скриптов PowerShell запрещено (Restricted). Для успешной работы с пакетами необходимо установить значение Unrestricted или ByPass, например:
Для начала проверим, какие из поставщиков установлены в системе. Для этого выполним команду:
По умолчанию в Windows имеются следующие поставщики пакетов:
• MSI — поставщик для обработки файлов msi (файлы установки Windows);
• MSU — поставщик для обработки файлов msu (файлы обновлений Windows);
• PowerShellGet — служит для управления модулями PowerShell;
• Programs — отвечает за инвентаризационные данные обо всех программных продуктах, зарегистрированных в оснастке ″Удаление или изменение программы″;
Теперь посмотрим доступные источники командой:
На данный момент из источников доступен только репозиторий PSGallery, поставщиком которого является PowerShellGet.
Ну собственно источник у нас имеется, поставщик тоже, можно приступать к установке пакетов. В качестве примера установим модуль PSWindowsUpdate.
Первое, что нам нужно сделать — это найти нужный пакет. Следующая команда выведет все версии нужного пакета, имеющиеся в указанном репозитории:
Примечание. Для работы с репозиториями небходим провайдер NuGet, поэтому при первом обращении вам будет предложено установить его. NuGet — это бесплатный менеджер пакетов с открытым исходным кодом, предназначенный для платформы Microsoft. Он требуется для работы с пакетами NuGet (.nupkg).
Следующей командой установим найденный пакет, дополнительно укажем требуемую версию:
Примечание. Версию пакета указывать не обязательно, в этом случае будет установлена наиболее свежая.
После установки проверим наличие пакета:
Как видите, все на месте.
Ну и завершим демонстрацию удалением свежеустановленного пакета:
Этот пример наглядно показывает принцип работы с пакетами. Если вспомнить схему, то действия по установке пакета выглядят примерно так:
И вот тут стоит подробнее объяснить назначение компонента PackageManagement Core. Дело в том, что каждый поставщик имеет свой собственный синтаксис команд, а ядро служит как бы переводчиком, который умеет общаться с каждым поставщиком на его родном языке. При этом конечному пользователю предоставляется строго унифицированный набор команд, независимо от используемого поставщика.
Перейдем к более жизненным примерам и установим какую нибудь программу. Для этого нам понадобится новый источник, поскольку в PSGallery нет ничего, кроме PowerShell модулей. Одним из наиболее популярных публичных источников является репозиторий Chocolatey, им и воспользуемся.
Для доступа к источнику необходим соответствующий поставщик, поэтому выведем список всех доступных для установки поставщиков командой:
Для работы с Chocolatey рекомендуется использовать одноименный поставщик сhocolatey. Установим его командой:
Еще раз проверим список источников и убедимся, что в нем появился Chocolatey. И чтобы не требовалось подтверждение на установку пакетов, сделаем его доверенным источником:
Ради интереса посмотрим, сколько всего пакетов есть в новом репозитории. Сделать это можно командой:
На момент написания статьи количество пакетов в ″шоколадке″ составляет 6533 штуки, и оно постоянно увеличивается.
В качестве примера найдем и установим мой любимый редактор Notepad++:
Для проверки зайдем в меню Пуск и удостоверимся, чтоNotepad++ действительно установлен и готов к работе.
На этом можно было бы и закончить статью, в заключение написав о том, как легко и просто ставить ПО из пакетов. Но на самом деле все не так красиво, как кажется 🙂 Поэтому не будем останавливаться на достигнутом и попробуем установить еще одно приложение, к примеру архиватор 7zip.
На этот раз для поиска пакета воспользуемся выводом командлета Out-GridView:
А теперь начинается самое интересное — установка пакета проходит без ошибок, но самого приложения нигде нет. Для понимания происходящего запускаем установку пакета с ключом Verbose и видим, что установщик ругается на неизвестную команду Get-OSArchitectureWidth.
При этом сам пакет считается успешно установленным и его можно найти в списке доступных.
Поставщик chocolatey создает в корне диска папку Chocolatey, где хранит все загруженные пакеты. Найдем среди них пакет 7zip и посмотрим его содержимое. Как видите, пакет представляет из себя набор из стандартных инсталляторов и пары powershell скриптов — один для установки, второй для удаления.
При установке приложения из репозитория провайдер сначала загружает файлы пакета, а затем запускает скрипт установки. Откроем установочный скрипт и посмотрим его содержимое. Как видите, он просто выбирает нужный дистрибутив (x32 или x64) и устанавливает его в тихом режиме, а неизвестная команда как раз и служит для определения разрядности системы.
В процессе поисков удалось выяснить, что команда Get-OSArchitectureWidth входит в состав официального поставщика Chocolatey, точнее в один из его модулей. По какой то причине при установке поставщика chocolatey ставится только часть функционала, соответственно установка приложений с его помощью превращается в лотерею. Часть приложений ставится нормально, часть не ставится вообще.
Как можно исправить эту ситуацию? Первое, что приходит на ум, это использовать другого поставщика. Выводим всех подходящих командой:
Всего для работы с ″шоколадкой″ есть три поставщика. Путем проб и ошибок выбираем ChocolateyGet:
Еще раз попробуем установить 7zip, уже с помощью нового поставщика:
На сей раз все прошло успешно и приложение установлено.