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


Настройка корпоративных приложений с помощью пакетов изменений

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

Разрешение конфликтов

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