Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возможность настроить опыт использования приложения важна, особенно для предприятий. Мы поговорили с ИТ-специалистами, и мы знаем, что настройка приложений в соответствии с потребностями пользователя необходима для перехода в 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). Это гарантирует, что основной пакет получит все виртуальные файловые системы как от основного пакета, так и от пакета изменений.
Установка пакетов изменений на компьютере
Установка пакетов изменений на компьютере следует другим соглашениям об установке. Следует отметить, что при установке пакета может потребоваться использовать параметр -OptionalPackagePath .
Разрешение конфликтов
В случае нескольких пакетов изменений, пытающихся изменить одно и то же значение, конфликт разрешается с учетом алфавитного порядка имен пакетов изменений.