Создание файла Установщика приложений вручнуюCreate an App Installer file manually

В этой статье показано, как вручную создать файл установщика приложения, который определяет связанный набор.This article shows how to manually create an App Installer file that defines a related set. Связанный набор — это не один объект, а сочетание основного и дополнительных пакетов.A related set is not one entity, but rather a combination of a main package and optional packages.

Чтобы получить возможность установить связанный набор как один объект, необходимо указать основной и дополнительные пакеты как один объект.To be able to install a related set as one entity, we must be able to specify the main package and optional package as one. Для этого необходимо создать XML-файл с расширением appinstaller , чтобы определить связанный набор.To do this, we will need to create an XML file with an .appinstaller extension to define a related set. Установщик приложения использует файл appinstaller и позволяет пользователю установить все определенные пакеты одним щелчком.App Installer consumes the .appinstaller file and allows the user to install all of the defined packages with a single click.

Пример файла установщика приложенияApp Installer file example

Прежде чем мы перейдем к более подробной информации, ниже приведен полный пример файла msixbundle *. appinstaller:Before we go in to more detail, here is a complete sample msixbundle *.appinstaller file:

<?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>
    
    <UpdateSettings>
    <OnLaunch HoursBetweenUpdateChecks="0"/>   
  </UpdateSettings>

</AppInstaller>

При развертывании файл Установщика приложений сверяется с пакетами приложений, на которые ссылается элемент Uri.During deployment, the App Installer file is validated against the app packages referenced in the Uri element. таким образом, значения Name, Publisher и Version должны соответствовать элементу Package/Identity в манифесте пакета приложения.So, the Name, Publisher and Version should match the Package/Identity element in the app package manifest.

Инструкции по созданию файла Установщика приложений.How to create an App Installer file

Для распределения связанного набора как одного объекта необходимо создать файл Установщика приложений, содержащий элементы, которые требуются соответствующей схеме Установщика приложений.To distribute your related set as one entity, you must create an App Installer file that contains the elements that are required by that appinstaller schema.

Шаг 1. Создание файла *.appinstallerStep 1: Create the *.appinstaller file

Используя текстовый редактор, создайте файл (который будет содержать XML) и назовите его <имя_файла>.appinstallerUsing a text editor, create a file (which will contain XML) and name it <filename>.appinstaller

Шаг 2. Добавление базового шаблонаStep 2: Add the basic template

Базовый шаблон включает в себя сведения о файле Установщика приложений.The basic template includes the App Installer file information.

<?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" >
</AppInstaller>

Шаг 3. Добавление сведений об основном пакетеStep 3: Add the main package information

Если основным пакетом приложения является файл. msix или. appx, используйте <MainPackage> , как показано ниже.If the main app package is an .msix or .appx file, then use <MainPackage>, as shown below. Обязательно включите ProcessorArchitecture, так как он обязателен для пакетов, не относящихся к пакету.Be sure to include the ProcessorArchitecture, as it is mandatory for non-bundle packages.

<?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" >

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

</AppInstaller>

Если основным пакетом приложения является msixbundle или appxbundle или файл, используйте <MainBundle> вместо, <MainPackage> как показано ниже.If the main app package is an .msixbundle or .appxbundle or file, then use the <MainBundle> in place of <MainPackage> as shown below. Для пакетов ProcessorArchitecture не требуется.For bundles, ProcessorArchitecture is not required.

<?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" />

</AppInstaller>

Сведения в атрибуте <MainBundle> или <MainPackage> должны совпадать с элементом Package/Identity в манифесте пакета приложений или пакета приложения соответственно.The information in the <MainBundle> or <MainPackage> attribute should match the Package/Identity element in the app bundle manifest or app package manifest respectively.

Шаг 4. Добавление дополнительных пакетовStep 4: Add the optional packages

Как и атрибут основного пакета приложений, если дополнительный пакет может являться пакетом приложения или пакетом приложений, дочерний элемент с атрибутом <OptionalPackages> должен являться <Package> или <Bundle>.Similar to the main app package attribute, if the optional package can be either an app package or an app bundle, the child element within the <OptionalPackages> attribute should be <Package> or <Bundle> respectively. Сведения о пакете в дочерних элементах должны соответствовать элементу идентификатора в манифеста пакета приложений или пакета приложения.The package information in the child elements should match the identity element in the bundle or package manifest.

<?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"
            ProcessorArchitecture="x64"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

</AppInstaller>

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

В элементе зависимостей можно указать требуемые пакеты платформы для основного пакета или дополнительных пакетов.In the dependencies element, you can specify the required framework packages for the main package or the optional packages.

<?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"
            ProcessorArchitecture="x86"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

    <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. Добавление параметра обновленияStep 6: Add Update setting

В файле Установщика приложений можно также указать параметр обновления, чтобы связанные наборы автоматически обновлялись при публикации нового файла Установщика приложений.The App Installer file can also specify update setting so that the related sets can be automatically updated when a newer App Installer file is published. является необязательным элементом. is an optional element. В параметре OnLaunch указывает, что проверки обновлений должны выполняться при запуске приложения, а хаурсбетвинупдатечеккс = "12" указывает, что проверка обновлений должна выполняться каждые 12 часов.Within the OnLaunch option specifies that update checks should be made on app launch, and HoursBetweenUpdateChecks="12" specifies that an update check should be made every 12 hours. Если параметр HoursBetweenUpdateChecks не задан, интервал проверки обновлений по умолчанию — 24 часа.If HoursBetweenUpdateChecks is not specified, the default interval used to check for updates is 24 hours. Дополнительные типы обновлений, например фоновые обновления, можно найти в схемепараметров обновления. Дополнительные типы обновлений для запуска, такие как обновления с запросом, можно найти в схеме OnLaunch.Additional types of updates, like background updates can be found in the Update Settings schema; Additional types of on-launch updates like updates with a prompt can be found in the OnLaunch schema

<?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"
            ProcessorArchitecture="x86"
            Uri="http://mywebservice.azurewebsites.net/OptionalApp3.msix" />

    </OptionalPackages>

    <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>

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

</AppInstaller>

Полные сведения о схеме XML см. в разделе Справочник по файлу Установщика приложений.For all of the details on the XML schema, see App Installer file reference.

Примечание

Тип файла установщика приложений является новым в Windows 10, версия 1709 (Windows 10 Creators Update).The App Installer file type is new in Windows 10, version 1709 (the Windows 10 Fall Creators Update). Развертывание приложений Windows 10 с помощью файла установщика приложения в предыдущих версиях Windows 10 не поддерживается.There is no support for deployment of Windows 10 apps using an App Installer file on previous versions of Windows 10. Элемент хаурсбетвинупдатечеккс доступен начиная с Windows 10, версия 1803.The HoursBetweenUpdateChecks element is available starting in Windows 10, version 1803.