Настройка приложений Enterprise с помощью пакетов изменений
Важно настроить интерфейс приложения, особенно для предприятий. Мы поговорили с ИТ-специалистами, и мы знаем, что настройка приложений в соответствии с потребностями пользователей необходима для перехода к Windows 10. При настройке приложений, упакованных с помощью MSI, ит-специалисты должны получить пакет от разработчиков и повторно упаковать установщик с помощью настройки в соответствии с потребностями. Это дорогостоящие усилия для предприятий. Мы хотим отделить настройку и основное приложение, чтобы повторно упаковка больше не требовалась. Это гарантирует, что предприятия получают последние обновления от разработчиков, сохраняя контроль над их настройками.
В Windows 10, версия 1809 мы представили новый тип пакета MSIX, который называется пакетом изменения. Пакеты изменений — это пакеты MSIX, в которых хранятся настройки. Пакеты изменений также могут быть подключаемыми модулями или надстройками, которые могут не иметь точки активации. ИТ-специалисты могут использовать эту функцию для гибкого изменения контейнеров MSIX, чтобы приложения были наложены настройками предприятия.
Принцип работы
Пакеты изменений предназначены для предприятий, которые не принадлежат коду приложения и имеют только установщик. Пакет изменений можно создать с помощью последней версии средства упаковки MSIX (для Windows 10 версии 1809 или более поздней). Если у вас есть код для приложения, можно также создать расширение приложения.
Если вы хотите создать пакет изменения, имеющий строгую привязку к основному приложению, можно объявить основное приложение как зависимость в манифесте пакета изменения.
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
<uap4:MainPackageDependency Name="Main.App"/>
</Dependencies>
В следующем примере показано, как указать другой сертификат или издатель.
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
<uap4:MainPackageDependency Name="Main.App" Publisher="CN=Contoso, C=US" />
</Dependencies>
Это простая конфигурация, если связь между пакетом изменения и основным пакетом является "один к одному". Типичные настройки часто требуют разделов реестра в HKEY_CURRENT_USER или HKEY_CURRENT_USERCLASS. В пакете MSIX есть файлы User.dat и Userclass.dat для записи разделов реестра. Вам потребуется создать User.dat, если вам нужны разделы реестра в разделе HKCU\Software* (так же, как Registry.dat используется для HKLM\Software*). Используйте Userclass.dat, если требуются ключи в HKCU\Sofware\Classes*.
Ниже приведены типичные способы создания DAT-файла:
Используйте Regedit для создания файла. Создайте куст в Regedit и вставьте необходимые ключи. Чем щелкнуть правой кнопкой мыши, экспортировать и сохранить файл hive. Обязательно присвойте файлу имя User.dat или Userclass.dat.
Используйте API для создания необходимых файлов. Функцию ORSaveHive можно использовать для сохранения DAT-файла. Обязательно присвойте файлу имя User.dat или Userclass.dat.
После внесения необходимых изменений можно создать пакет изменений, как и любой другой пакет MSIX. Затем можно развернуть пакет с текущей настройкой развертывания. При повторном запуске основного приложения вы увидите изменения, внесенные пакетом изменений. Если вы решили удалить пакет изменений, основное приложение вернется к состоянию без пакета изменения.
Узнайте, какие пакеты изменений установлены на устройстве
С помощью PowerShell можно увидеть установленные пакеты изменений с помощью следующей команды.
Get-AppPackage -PackageTypeFilter Optional
Пакеты изменений в Windows 10, версия 1809
В Windows 10, версия 1809 пакеты изменений могут включать конфигурации, необходимые для установки в реестре, чтобы основной пакет выполнялся должным образом. Это означает, что основное приложение использует реестр для просмотра наличия подключаемого модуля. После развертывания главного пакета и пакета изменений выполняемое приложение будет просматривать виртуальный реестр (VREG) для обоих пакетов.
Обратите внимание, что ваш основной пакет может использовать VREG для выполнения следующих задач:
- Просмотр места загрузки файла (DLL) подключаемого модуля. В таком случае убедитесь, что файл является частью пакета. Так главный пакет сможет обращаться к файлу во время выполнения.
- Просмотр расположения для определения значения реестров VREG. Ваш основной пакет может искать значения, которое должно существовать во VREG. При создании пакета изменений вручную или с помощью нашего средства убедитесь, что значение является правильным.
Пакеты изменений в Windows 10 версии 1903 и более поздних версий
В Windows 10 версии 1903 были добавлены следующие функции.
Обновление манифеста
Мы добавили в манифест пакета MSIX с изменениями поддержку следующего элемента:
<Properties>
<rescap6:ModificationPackage>true</rescap6:ModificationPackage>
</Properties>
Чтобы пакеты с изменениями работали в версии 1903 или более поздней, манифест такого пакета должен включать этот элемент. Он будет добавляться автоматически при создании пакета MSIX с изменениями с помощью январского выпуска средства упаковки MSIX. Если вы преобразовали пакет с помощью этого средства ранее, вы можете изменить его в средстве упаковки и добавить новый элемент. Кроме того, при установке пакета с изменениями пользователем отобразится оповещение о том, что пакет может изменить основное приложение.
При использовании пакета изменения, созданного до версии 1903, необходимо изменить манифест пакета, чтобы обновить MaxVersionTested
атрибут до версии 10.0.18362.0.
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="10.0.18362.0" />
Создание пакета изменений с помощью средства упаковки MSIX
Чтобы создать пакет изменений с помощью средства упаковки MSIX, сделайте следующее:
Определите основной пакет. Убедитесь, что версия MSIX основного пакета установлена на компьютере, на котором выполняется преобразование. В противном случае вам нужно вручную указать сведения об издателе и основном приложении. Также для некоторых конфигураций требуется, чтобы основное приложение было установлено на вашем компьютере.
После преобразования пакет можно изменить один раз с помощью редактора пакетов. Иногда для основного пакета требуется, чтобы с пакетом изменений были связаны определенные значения во VREG. В таком случае вам нужно изменить этот пакет соответствующим образом.
Создание пакета изменений с помощью MakeAppx.exe
Пакет изменения можно создать вручную с помощью средства MakeAppX.exe, включенного в пакет SDK для Windows 10.
В манифесте определите основной пакет. Укажите издателя и имя основного пакета.
<Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="12.0.0.0"/> <uap4:MainPackageDependency Name="HeadTrax" Publisher="CN=Contoso Software, O=Contoso Corporation, C=US" /> </Dependencies>
Создайте Registry.dat, User.dat и Userclass.dat, чтобы создать разделы реестра, требуемые для загрузки пакета изменений. Так основное приложение сможет просматривать пользовательские разделы реестра. Помните, что все компоненты выполняются в контейнере, поэтому во время выполнения виртуальные реестры основного пакет и пакета изменений будут объединены, чтобы основной пакет мог просматривать виртуальный реестр пакета изменений.
Этот процесс также поддерживает конфигурации и подключаемые модули файловой системы файлов, так как исполняемый файл основного приложения не находится в виртуальной файловой системе (VFS). Это гарантирует, что основной пакет получит доступ к VFS основного пакета и пакета изменений.
Установка пакетов изменений на компьютере
Установка пакетов изменений на компьютере соответствует другим соглашениям об установке. Следует отметить, что при установке пакета может потребоваться использовать параметр -OptionalPackagePath .
Устранение конфликтов
В случае нескольких пакетов изменений, пытающихся изменить одно и то же значение, конфликт разрешается с учетом алфавитного порядка имен пакетов изменений.