Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта функция позволяет подписывать пакеты новым сертификатом, сохраняя возможности обновления приложения. Другими словами, это позволяет пакету сохранять свою старую идентичность в системе без необходимости подписывать с помощью старого (оригинального) сертификата. Начиная с сборок Windows Insider Preview 22000, необходимо создать документ, чтобы отобразить связь между старым сертификатом и новым сертификатом, который используется для подписи. Ниже приведено пошаговое описание того, как сохранить идентификатор пакета для поддержания процесса обновления.
Требования
- Получите MakeAppx.exe с помощью пакета SDK для Windows. Эта функция в настоящее время доступна в пакете SDK для Windows Preview 22000
- Получите SignTool.exe с помощью пакета SDK для Windows. Эта функция в настоящее время доступна в пакете SDK для Windows Preview 22000
- Старый сертификат (CN=Old), который использовался для подписи исходного пакета
- Новый сертификат (CN=New), который будет использоваться для подписи пакета
Пошаговое руководство
Это пошаговая инструкция по подписи пакета с новым сертификатом при сохранении идентификатора пакета.
Создание артефакта
- Напишите XML-документ, подробно описывающий старых и новых издателей. Присвойите ему любое имя, artifact.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns="http://schemas.microsoft.com/appx/publisherbridging/2021" Old="CN=Old" New="CN=New" />
- Напишите файл определения каталога (CDF), чтобы создать каталог, который будет использоваться для подписи артефакта. Назовите его как вам угодно, artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256
[CatalogFiles]
<HASH>artifact.xml=artifact.xml
- Запустите makecat.exe на этом CDF. Он создаст файл, указанный в нем
makecat.exe artifact.cdf
- Подпишите каталог с использованием старого сертификата
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat
На этом этапе необходимо хранить только XML и CAT файлы. Вы можете создать несколько артефактов, однако платформа в настоящее время поддерживает до 5.
Замечание
Рекомендуется использовать метку времени для файла каталога. Если каталог не имеет отметки времени, артефакт становится бесполезным в момент истечения срока действия старого сертификата.
Создание пакета
- Создайте файл для интеграции издателя, чтобы указать makeappx.exe, какие артефакты следует использовать. Этот файл аналогичен файлу сопоставления. Назовите это как хотите, artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"
Каждая строка должна содержать пару путей к XML-файлам и CAT. Артефакты должны быть упорядочены по мере их применения. Если у вас есть два артефакта: один для >, и другой для Publisher2-Publisher3, сначала необходимо указать тот, который для >.
- Вызовите makeappx.exe с флагом /pb , чтобы указать файл бриджинга издателя:
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
- Подпишите ваш пакет с помощью нового сертификата
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix
Теперь у вас есть пакет с артефактами, хранящимися внутри него, и подписан новым сертификатом. Вы можете развернуть этот пакет так же, как любой другой пакет MSIX.
Соображения
Мы рекомендуем, чтобы каталог был помечен временной меткой. Чтобы сделать это, необходимо добавить эти аргументы в вызов signtool перед путем к каталогу: /td SHA256 /tr
Вам по-прежнему потребуется установить старый сертификат (рекомендуется с меткой времени) на компьютере для установки пакета, подписанного новым сертификатом.
Чтобы использовать эту функцию, необходимо сделать это до истечения срока действия старого сертификата.
Эта функция работает как для пакетов MSIX, так и для пакетов MSIX Bundles.