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

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

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

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

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

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

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

  1. Создайте *. Файл AppInstaller.
  2. Укажите атрибуты файла установщика приложений.
  3. Укажите основной пакет приложения Для Windows.
  4. Укажите связанный набор необязательный пакет.
  5. Укажите пакет windows app Framework для зависимостей.
  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

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

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

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

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

Элемент Description
xmlns Пространство имен XML
Версия Версия файла установщика приложений в четырехточии нотации (1.0.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. Добавление сведений о основном пакете

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

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

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

Установщик приложений Windows

Если основной пакет приложения является MSIX или APPX-файлом, используйте <MainPackage>его, как показано ниже. Не забудьте включить обработчикArchitecture, так как он является обязательным для пакетов, не относящихся к пакету.

<?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> , как показано ниже. Для пакетов ОбработчикArchitecture не требуется.

<?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> соответственно. Сведения о пакете в дочерних элементах должны соответствовать элементу удостоверения в манифесте пакета или пакета.

Элемент Description
Имя. Имя необязательного приложения, распространяемого через файл установщика приложений. Это можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Name
Издатель Каноническое имя сертификата издателя, используемого для подписи необязательного установщика приложений Windows. Это можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Publisher
Версия Версия необязательного установщика приложений Windows в четырехточии нотации (1.0.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. Добавление зависимостей

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

Элемент Description
Имя. Имя приложения зависимостей, распространяемого через файл установщика приложений. Это можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Name
Издатель Каноническое имя сертификата издателя, используемого для подписи установщика приложений Для Windows зависимостей. Это можно найти, выполнив следующий командлет PowerShell: $(Get-AppxPackage [AppName]).Publisher
Версия Версия установщика приложений Windows зависимостей в четырехточии нотации (1.0.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. Добавление параметра обновления

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

Элементы Description
HoursBetweenUpdateChecks Определяет минимальный разрыв в проверка обновления приложений Windows.
UpdateBlocksActivation Определяет интерфейс, когда обновление приложения проверка.
ShowPrompt Определяет, отображается ли окно при установке обновлений и проверка обновлений.
ForceUpdateFromAnyVersion Указывает, что следующая версия приложения может быть более новой или более старой. Если значение True, все для обоих, если значение False (по умолчанию), будут установлены только новые версии.
<?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 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 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. Элемент HoursBetweenUpdateChecks доступен начиная с Windows 10 версии 1803.