Настройка корпоративных приложений с помощью пакетов измененийCustomize your Enterprise apps with modification packages

Возможность настройки взаимодействия с приложением важна, особенно для предприятий.The ability to customize an application's experience is important, especially for enterprises. Мы работаем над ИТ-специалистами и знаете, что настройка приложений в соответствии с потребностями пользователей очень необходима для перехода на Windows 10.We’ve spoken to IT professionals and we know that customizing applications to meet their user's needs is essential to the effort of moving to Windows 10. При настройке приложений, упакованных с помощью MSI, хорошо понимается, что ИТ-специалисты должны получить пакет от разработчиков и повторно упаковать установщик с настройками в соответствии со своими потребностями.When customizing applications that are packaged using MSI, it is well understood that IT professionals must acquire the package from the developers and re-package the installer with the customization to suit their needs. Это дорогостоящие усилия для предприятий.This is a costly effort for enterprises. Перемещаясь вперед, мы хотим отделить настройку и основное приложение, чтобы повторно упаковать больше не нужно.Moving forward, we want to decouple the customization and the main application so that re-packaging is no longer needed. Это гарантирует, что предприятия получают последние обновления от разработчиков, сохраняя при этом контроль над их настройками.This ensures that enterprises get the latest updates from developers while still maintaining control of their customizations.

В Windows 10 версии 1809 появился новый тип пакета MSIX, именуемый пакетом модификации.In Windows 10, version 1809, we introduced a new type of MSIX package called a modification package. Пакеты изменений — это MSIX пакеты, в которых хранятся настройки.Modification packages are MSIX packages that store customizations. Пакеты изменений также могут быть подключаемыми модулями или надстройками, которые могут не иметь точки активации.Modification packages can also be plugins/add-ons that may not have an activation point. ИТ-специалисты могут использовать эту функцию для гибких контейнеров изменений MSIX, чтобы приложения были перемещаются по настройкам предприятия.IT professionals can use this feature to flexibly change MSIX containers so that applications are overlaid by their enterprise's customizations.

Принцип работыHow it works

Пакеты изменений предназначены для предприятий, которые не владеют кодом приложения и имеют только установщик.Modification packages are designed for enterprises that do not own the code of the application and only have the installer. Пакет изменений можно создать с помощью последней версии средства упаковки MSIX (для Windows 10 версии 1809 или более поздней).You can create a modification package by using the latest version of the MSIX packaging tool (for Windows 10 version 1809 or later). Если у вас есть код для приложения, можно также создать расширение приложения.If you have the code for the application, you can alternatively create an app extension.

Если вы хотите создать пакет модификации, имеющий ограниченную привязку к главному приложению, можно объявить основное приложение как зависимость в манифесте пакета изменений.If you want to create a modification package that has a strict binding to the main app, you can declare the main app as a dependency in the modification package’s manifest.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App"/>
</Dependencies>

В следующем примере показано, как указать другой сертификат или издатель.The following example demonstrates how to specify a different certificate or publisher.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App" Publisher="CN=Contoso, C=US" />
</Dependencies>

Это простая конфигурация, если связь между пакетом изменений и основным пакетом — один к одному.This is a simple configuration if the relationship between the modification package and main package is one-to-one. Типичные настройки часто занимают разделы реестра в разделе HKEY_CURRENT_USER или HKEY_CURRENT_USERCLASS.Typical customizations often require registry keys under HKEY_CURRENT_USER or HKEY_CURRENT_USERCLASS. Внутри нашего пакета MSIX у нас есть файлы user. dat и userclass. dat для записи разделов реестра.Inside our MSIX package we have User.dat and Userclass.dat files to capture the registry keys. Необходимо создать User. dat, если вам нужны разделы реестра в разделе Хкку\софтваре * (так же, как Registry. dat используется для HKLM\Software * ).You will need to create User.dat if you need registry keys under HKCU\Software* (just like Registry.dat is used for HKLM\Software*). Используйте userclass. dat, если вам нужны ключи в разделе Хкку\софваре\классес * .Use Userclass.dat if you need keys under HKCU\Sofware\Classes*.

Ниже приведены типичные способы создания файла. dat.Here are the typical ways to create a .dat file:

  • Используйте Regedit для создания файла.Use Regedit to create a file. Создайте куст реестра в Regedit и вставьте необходимые ключи.Create a hive in Regedit and insert the necessary keys. По сравнению с щелчком правой кнопкой мыши, экспортом и сохранением файла Hive.Than right click, export and save-as hive file. Убедитесь, что имя файла — User. dat или userclass. dat.Make sure to name the file either User.dat or Userclass.dat

  • Используйте API для создания необходимых файлов.Use an API to create necessary files. Для сохранения dat-файла можно использовать функцию орсавехиве .You can use the ORSaveHive function to save a .dat file. Убедитесь, что имя файла Ether User. dat или userclass. datMake sure to name the file ether User.dat or Userclass.dat

После внесения необходимых изменений можно создать пакет изменений, как и любой другой пакет MSIX.After you’ve made the necessary changes, you can create the modification package like any other MSIX package. Затем можно развернуть пакет с текущим набором развертывания.Then you can deploy the package with the current deployment set-up. При перезапуске основного приложения можно увидеть изменения, внесенные в пакет изменений.When you relaunch your main app, you can see the changes that the modification package has made. Если вы решили удалить пакет изменений, основное приложение вернется в состояние без пакета изменений.If you choose to remove the modification package, your main app will revert to a state without the modification package.

Узнайте, какие пакеты изменений установлены на вашем устройствеFind out what modification packages are installed on your device

С помощью PowerShell можно просмотреть установленные пакеты изменений с помощью следующей команды.Using PowerShell, you can see installed modification packages using the following command.

Get-AppPackage -PackageTypeFilter Optional

Пакеты изменений в Windows 10, версия 1809Modification packages on Windows 10, version 1809

В Windows 10 версии 1809 пакеты изменений могут включать конфигурации, необходимые для настройки в реестре так, чтобы основной пакет запускался должным образом.On Windows 10, version 1809, modification packages can include configurations needed to be set in the registry such that the main package will run as expected. Это означает, что основное приложение использует реестр для просмотра того, существует ли подключаемый модуль.Meaning your main application leverages the registry to view whether a plug-in exists. После развертывания главного пакета и пакета изменений выполняемое приложение будет просматривать виртуальный реестр (VREG) для обоих пакетов.When you deploy the main package and the modification package, at runtime the application will view the virtual registry (VREG) of both the main package and the modification package.

Обратите внимание, что ваш основной пакет может использовать VREG для выполнения следующих задач:Note that your main package may be using the VREG to do the following things:

  • Просмотр места загрузки файла (DLL) подключаемого модуля.Viewing where to load the file (the DLL) of the plug-in. В таком случае убедитесь, что файл является частью пакета.If this is the case, then ensure that the file is part of the package. Так главный пакет сможет обращаться к файлу во время выполнения.By doing this, main package is able to access the file at runtime.
  • Просмотр расположения для определения значения реестров VREG.Viewing where to see the value of the VREG keys. Ваш основной пакет может искать значения, которое должно существовать во VREG.Your main package may be looking for a value to exist in the VREG. При создании пакета изменений вручную или с помощью нашего средства убедитесь, что значение является правильным.When you create your modification package either by hand or using our tool, ensure that the value is correct.

Пакеты изменений в Windows 10, версия 1903 и более поздниеModification packages on Windows 10, version 1903, and later

В Windows 10 версии 1903 были добавлены следующие функции.The following features were added to Windows 10, version 1903.

Обновление манифестаManifest update

Мы добавили в манифест пакета MSIX с изменениями поддержку следующего элемента:We’ve added support for the following element to the MSIX modification package’s manifest.

<Properties>
   <rescap6:ModificationPackage>true</rescap6:ModificationPackage>
</Properties>

Чтобы пакеты с изменениями работали в версии 1903 или более поздней, манифест такого пакета должен включать этот элемент.To ensure that modification packages work in version 1903 or later, the modification package's manifest must include this element. Он будет добавляться автоматически при создании пакета MSIX с изменениями с помощью январского выпуска средства упаковки MSIX.This will be done for you if you package your MSIX modification package using the January release of the MSIX packaging tool. Если вы преобразовали пакет с помощью этого средства ранее, вы можете изменить его в средстве упаковки и добавить новый элемент.If you've converted a package using our tool prior to the release, you can edit your existing package in our tool to add this new element. Кроме того, при установке пакета с изменениями пользователем отобразится оповещение о том, что пакет может изменить основное приложение.In addition, if users install the modification package, they will be alerted that the package may modify the main application.

Если вы используете пакет изменений, созданный до версии 1903, необходимо изменить манифест пакета, чтобы обновить MaxVersionTested атрибут на 10.0.18362.0.If you are using a modification package that was created before version 1903, it is necessary to edit the package manifest to update the MaxVersionTested attribute to 10.0.18362.0.

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="10.0.18362.0" />

Создание пакета изменений с помощью средства упаковки MSIXCreate a modification package using the MSIX Packaging Tool

Чтобы создать пакет изменений с помощью средства упаковки MSIX, сделайте следующее:You can create a modification package with the MSIX Packaging Tool:

  • Определите основной пакет.Specify the main package. Убедитесь, что версия MSIX основного пакета установлена на компьютере, на котором выполняется преобразование.Be sure to have the MSIX version of your main package available on your machine that you are converting on. В противном случае вам нужно вручную указать сведения об издателе и основном приложении.If not than we will ask you to manually provide the publisher and main application information. Также для некоторых конфигураций требуется, чтобы основное приложение было установлено на вашем компьютере.Also some customization require that your main application is installed on your machine. Пакеты изменений — MPTModification Package MPT

  • После преобразования пакет можно изменить один раз с помощью редактора пакетов.Modify the package once it has gone through conversion using the package editor. Иногда для основного пакета требуется, чтобы с пакетом изменений были связаны определенные значения во VREG.There may be a case where the main package requires your modification package to have certain values in their VREG. В таком случае вам нужно изменить этот пакет соответствующим образом.This is where you would go and edit the package appropriately.

Создание пакета изменений с помощью MakeAppx.exeCreate a modification package using MakeAppx.exe

Пакет модификации можно создать вручную с помощью средства MakeAppX.exe , включенного в пакет SDK для Windows 10.You can create a modification package manually by using the MakeAppX.exe tool that is included in the Windows 10 SDK.

  • В манифесте определите основной пакет.In the manifest, specify the main package. Укажите издателя и имя основного пакета.Include the publisher and the main package name.

    <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, чтобы создать разделы реестра, требуемые для загрузки пакета изменений.Create Registry.dat, User.dat and Userclass.dat to create whatever registry keys are needed to load your modification package. Так основное приложение сможет просматривать пользовательские разделы реестра.This is only required if you need your main application to view custom registry keys. Помните, что все компоненты выполняются в контейнере, поэтому во время выполнения виртуальные реестры основного пакет и пакета изменений будут объединены, чтобы основной пакет мог просматривать виртуальный реестр пакета изменений.Remember that since everything is running inside a container, at runtime the main package and the modification package virtual registry will merge such that main package can view the modification packages virtual registry.

Этот процесс также поддерживает конфигурации и подключаемые модули файловой системы файлов, так как исполняемый файл основного приложения не находится в виртуальной файловой системе (VFS).This process also supports file system plug-ins and customizations, as long as the executable of the main application is not in a virtual file system (VFS). Это гарантирует, что основной пакет получит доступ к VFS основного пакета и пакета изменений.This is to ensure that the main package will get all the VFS of the main package and the modification package.