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

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

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

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

  • Пакет приложения Windows, на который ссылается URI атрибут элемента MainPackage>, Publisher проверяет Nameи Version атрибуты целевого < пакета приложения Windows. Если элемент Package/Identity в манифесте пакета приложения 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
Версия Версия файла установщика приложений в нотации с четырехточием (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. Добавление сведений об основном пакете

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

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

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

Элементы Описание
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 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 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.