Создание файла Установщика приложений вручную

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

Чтобы получить возможность установить связанный набор как один объект, необходимо указать основной и дополнительные пакеты как один объект. Для этого необходимо создать XML-файл с расширением appinstaller , чтобы определить связанный набор. Установщик приложений использует файл *. appinstaller и позволяет пользователю установить все определенные пакеты одним щелчком мыши.

Во время развертывания файл установщика приложения будет:

  • пакет приложения Windows, на который ссылается URI атрибут элемента < маинпаккаже >, проверит Name , а также Publisher Version атрибуты целевого Windows пакета приложения. если элемент пакета или удостоверения в манифесте пакета приложения Windows не совпадает, установка завершится ошибкой.
  • Создайте ссылку на обновления и исправьте URI для семейства пакета.

Инструкции по созданию файла Установщика приложений.

Чтобы распространить связанный набор как одну сущность, необходимо создать файл установщика приложения, содержащий элементы, необходимые для схемы установщика приложений.

  1. Создайте *. Файл AppInstaller.
  2. Укажите атрибуты файла установщика приложения.
  3. укажите основной пакет приложения Windows.
  4. Укажите дополнительный пакет связанного набора.
  5. укажите зависимый пакет платформы приложений Windows.
  6. Укажите пути URI обновления.
  7. Укажите пути универсального кода ресурса (URI) для восстановления.
  8. укажите Параметры обновления.
Пример файла установщика приложения

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

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Bundle
            Name="Contoso.OptionalApp2"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp2.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix"
            ProcessorArchitecture="x64" />
    </OptionalPackages>

    <UpdateURIs>
        <UpdateURI>http://mywebservice.azurewebsites.net/appset.appinstaller</UpdateURI>
        <UpdateURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</UpdateURI>
    </UpdateURIs>

    <RepairURIs>
        <RepairURI>http://mywebservice.azurewebsites.net/appset.appinstaller</RepairURI>
        <RepairURI>http://mywebservice2.azurewebsites.net/appset.appinstaller</RepairURI>
    </RepairURIs>

    <UpdateSettings>
        <OnLaunch HoursBetweenUpdateChecks="0"/>   
    </UpdateSettings>

</AppInstaller>

Шаг 1. Создание файла *.appinstaller

С помощью текстового редактора (Notepad.exe) создайте новый файл с расширением имени файла *. AppInstaller

Руководство.
  1. Откройте меню "Пуск".
  2. Введите следующее: notepad.exe .
  3. Откройте меню файл .
  4. В раскрывающемся меню выберите команду Сохранить как .

Шаг 2. Добавление базового шаблона

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

Элемент Описание
xmlns Пространство имен XML
Version Версия файла установщика приложения в нотации с четырьмя точками (1.0.0.0).
URI Путь URI к текущему файлу установщика приложения, доступный для устройства.
Руководство.
  1. Откройте файл, созданный на шаге 1.

  2. Скопируйте следующее XML-содержимое в *. Файл AppInstaller .

    <?xml version="1.0" encoding="utf-8"?>
    <AppInstaller
        xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
        Version=""
        Uri="" >
    </AppInstaller>
    
  3. Обновление Version атрибута с помощью версии файла установщика приложения

  4. Обновите URI атрибут с помощью сетевого расположения, в котором находится этот *. Файл AppInstaller будет доступен из.

Шаг 3. Добавление сведений об основном пакете

<MainPackage>и <MainBundle> используются для задания основного Windows приложения, которое будет установлено с помощью файла установщика приложения. <MainPackage>используется, если установщик Windows приложения имеет значение *. msix или *. appx. используйте, <MainBundle> когда установщик приложения Windows является пакетным установщиком Windowsного приложения с расширением *. msixbundle или *. appxbundle.

Элемент Описание
Имя Имя основного приложения, которое будет распространяться через файл установщика приложения. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Name .
Издатель каноническое имя сертификата издателя, используемого для подписания основного установщика Windows приложения. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Publisher .
Версия версия основного установщика приложения Windows в нотации с четырьмя точками (1.0.0.0). Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Version .
ProcessorArchitecture архитектура, на которой устанавливается основной установщик приложения Windows.
URI путь URI к основному установочному носителю Windows приложения.

Сведения в атрибуте <MainBundle> или <MainPackage> должны совпадать с элементом Package/Identity в манифесте пакета приложений или пакета приложения соответственно.

установщик приложения Windows

Если основным пакетом приложения является файл. msix или. appx, используйте <MainPackage> , как показано ниже. Обязательно включите ProcessorArchitecture, так как он обязателен для пакетов, не относящихся к пакету.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainPackage
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        ProcessorArchitecture="x64"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msix" />

</AppInstaller>
установщик пакета приложений Windows

Если основным пакетом приложения является msixbundle или appxbundle или файл, используйте <MainBundle> вместо, <MainPackage> как показано ниже. Для пакетов ProcessorArchitecture не требуется.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

</AppInstaller>

Шаг 4. Добавление дополнительных пакетов

Как и атрибут основного пакета приложений, если дополнительный пакет может являться пакетом приложения или пакетом приложений, дочерний элемент с атрибутом <OptionalPackages> должен являться <Package> или <Bundle>. Сведения о пакете в дочерних элементах должны соответствовать элементу идентификатора в манифеста пакета приложений или пакета приложения.

Элемент Описание
Имя Имя дополнительного приложения, которое будет распространяться через файл установщика приложения. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Name .
Издатель каноническое имя сертификата издателя, используемого для подписи необязательного установщика Windows приложения. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Publisher .
Версия версия необязательного установщика Windows приложения в нотации с четырьмя точками (1.0.0.0). Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Version .
ProcessorArchitecture архитектура, на которую устанавливается необязательный установщик приложения Windows.
URI путь URI к основному установочному носителю Windows приложения.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <OptionalPackages>
        <Bundle
            Name="Contoso.OptionalApp1"
            Publisher="CN=Contoso"
            Version="2.23.12.43"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp1.msixbundle" />

        <Package
            Name="Fabrikam.OptionalApp3"
            Publisher="CN=Fabrikam"
            Version="10.34.54.23"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

Шаг 5. Добавление зависимостей

В элементе зависимостей можно указать требуемые пакеты платформы для основного пакета или дополнительных пакетов.

Элемент Описание
Имя Имя приложения зависимости, которое распространяется в файле установщика приложения. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Name .
Издатель каноническое имя сертификата издателя, используемого для подписания Windows установщика приложения зависимостей. Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Publisher .
Версия версия установщика зависимостей Windows приложения в нотации с четырьмя точками (1.0.0.0). Его можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Version .
ProcessorArchitecture архитектура, на которой устанавливается установщик приложения зависимостей Windows.
URI универсальный код ресурса (URI) для установочного носителя приложения зависимости Windows.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <Dependencies>
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" ProcessorArchitecture="x86" Uri="http://foobarbaz.com/fwkx86.appx" />
        <Package 
            Name="Microsoft.VCLibs.140.00" 
            Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" 
            Version="14.0.24605.0" 
            ProcessorArchitecture="x64" 
            Uri="http://foobarbaz.com/fwkx64.appx" />
    </Dependencies>

</AppInstaller>

Шаг 6. Добавление параметра обновления

В файле Установщика приложений можно также указать параметр обновления, чтобы связанные наборы автоматически обновлялись при публикации нового файла Установщика приложений. является необязательным элементом. В параметре OnLaunch указывает, что проверки обновлений должны выполняться при запуске приложения, а хаурсбетвинупдатечеккс = "12" указывает, что проверка обновлений должна выполняться каждые 12 часов. Если параметр HoursBetweenUpdateChecks не задан, интервал проверки обновлений по умолчанию — 24 часа. дополнительные типы обновлений, например фоновые обновления, можно найти в схемеПараметры обновления. Дополнительные типы обновлений для запуска, такие как обновления с запросом, можно найти в схеме OnLaunch.

Элементы Описание
хаурсбетвинупдатечеккс определяет минимальный зазор в Windows проверки обновлений приложения.
упдатеблокксактиватион Определяет интерфейс при проверке обновления приложения.
шовпромпт Определяет, отображается ли окно при установке обновлений и когда выполняется проверка обновлений.
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12"
            UpdateBlocksActivation="true"
            ShowPrompt="true" />
        <AutomaticBackgroundTask />
        <ForceUpdateFromAnyVersion>true</ForceUpdateFromAnyVersion>
    </UpdateSettings>

</AppInstaller>

шаг 7. добавление Параметры автоматического обновления

Важно!

следующие параметры доступны только при использовании схемы 2021 в сборке Windows Insider Windows 10.

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

URI обновления должен быть предназначен для файлов установщика приложений.

Примечание

Эти параметры работают, только если схема настроена как 2021 или более новая.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <UpdateUris>
        <UpdateUri>https://www.contoso.com/Installers/MainApp.AppInstaller</UpdateUri>
        <UpdateUri>\\ServerName\Share\Installers\MainApp.AppInstaller</UpdateUri>
    </UpdateUris>

</AppInstaller>

шаг 8. добавление Параметры автоматического восстановления

Важно!

следующие параметры доступны только при использовании схемы 2021 в сборке Windows Insider Windows 10.

Windows приложения, установленные на устройстве, могут поддерживать автоматическое восстановление приложения Windows, когда оно становится незаконным. исходный установщик, который будет использоваться для восстановления Windows приложения, можно настроить с помощью <RepairURIs> свойства. приложение Windows попытается восстановиться на основе URI установщика приложения, если он недоступен, Windows приложение будет использовать универсальный код ресурса (uri) восстановления для идентификации источника исправления. для любого Windows приложения можно настроить не более 10 URI восстановления.

универсальный код ресурса (URI) восстановления может ориентироваться Windows файлы установщика приложения или приложения. этот параметр не требует, чтобы Windows приложение было установлено с помощью файла установщика приложения.

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
    xmlns="http://schemas.microsoft.com/appx/appinstaller/2021"
    Version="1.0.0.0"
    Uri="http://mywebservice.azurewebsites.net/appset.appinstaller" >

    <MainBundle
        Name="Contoso.MainApp"
        Publisher="CN=Contoso"
        Version="2.23.12.43"
        Uri="http://mywebservice.azurewebsites.net/mainapp.msixbundle" />

    <UpdateSettings>
        <OnLaunch 
            HoursBetweenUpdateChecks="12" />
    </UpdateSettings>

    <RepairUris>
        <RepairUri></RepairUri>
        <RepairUri></RepairUri>
    </RepairUris>

</AppInstaller>

Полные сведения о схеме XML см. в разделе Справочник по файлу Установщика приложений.

Примечание

тип файла установщика приложений новый в Windows 10, версия 1709 (Windows 10 Fall Creators Update). развертывание Windows 10 приложений с помощью файла установщика приложения в предыдущих версиях Windows 10 не поддерживается. элемент хаурсбетвинупдатечеккс доступен начиная с Windows 10 версии 1803.