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

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

Устранение конфликтов

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