Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как вручную создать файл установщика приложений, который определяет связанный набор с возможностью автоматического обновления и восстановления. Связанный набор не является одной сущностью, а скорее сочетанием основного пакета и необязательных пакетов.
Чтобы установить связанный набор как одну сущность, необходимо указать основной пакет и необязательный пакет как один. Для этого необходимо создать XML-файл с расширением APPInstaller для определения связанного набора. Установщик приложений использует файл *.appinstaller и позволяет пользователю устанавливать все определенные пакеты одним щелчком мыши.
Во время развертывания файл установщика приложений будет:
- Пакет приложения Windows, на который ссылается атрибут
URI
элемента < MainPackage >, будет проверятьName
,Publisher
иVersion
атрибуты целевого пакета приложения Windows. Если элемент Package/Identity в манифесте пакета приложения Windows не совпадает, установка завершится ошибкой. - Создайте ссылку на URI обновления и восстановления для семейства пакетов.
Создание файла установщика приложений
Чтобы распространить связанный набор как одну сущность, необходимо создать файл установщика приложений, содержащий элементы, необходимые для этой схемы установщика приложений.
- Создайте файл *.AppInstaller.
- Укажите атрибуты файла установщика приложений.
- Укажите основной пакет приложения Для Windows.
- Укажите связанный необязательный пакет.
- Укажите пакет Framework приложения Windows, от которого зависит программа.
- Укажите пути URI обновления.
- Укажите пути URI восстановления.
- Укажите параметры обновления.
Пример файла установщика приложений
Выполнив описанные выше действия, вы успешно создали файл установщика приложений, который похож на следующий:
<?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
Практическое руководство.
- Откройте меню "Пуск".
- Введите следующее:
notepad.exe
- Откройте меню "Файл ".
- Выберите "Сохранить как" в раскрывающемся меню.
Шаг 2. Добавление базового шаблона
AppInstaller
Включите элемент в файл установщика приложений, отметив версию, путь и сетевое расположение файла установщика приложений. Сведения в элементе AppInstaller
будут использоваться при установке связанных приложений Windows.
Элемент | Описание |
---|---|
xmlns | Пространство имен XML |
Версия | Версия файла установщика приложений в формате с четырьмя точками (1.0.0.0). |
URI-адрес | Путь URI к текущему файлу установщика приложений, доступный устройством. |
Практическое руководство.
Откройте файл, созданный на шаге 1.
Скопируйте следующее XML-содержимое в файл *.AppInstaller.
<?xml version="1.0" encoding="utf-8"?> <AppInstaller xmlns="http://schemas.microsoft.com/appx/appinstaller/2021" Version="" Uri="" > </AppInstaller>
Version
Обновление атрибута с помощью версии файла установщика приложенийОбновите атрибут
URI
сетевого расположения, откуда этот файл *.AppInstaller будет доступен.
Шаг 3. Добавление сведений о основном пакете
<MainPackage>
и <MainBundle>
используются для идентификации основного приложения Windows, которое будет установлено с помощью файла программы установки приложений. Когда установщик приложений для Windows является *<MainPackage>
или *.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 |
Архитектура процессора | Архитектура, в которую устанавливается основной установщик приложений Windows. |
УРИ | Путь 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 |
Архитектура процессора | Архитектура, в которую устанавливается необязательный установщик приложений Windows. |
УРИ | Путь 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 |
Архитектура процессора | Архитектура, на которую устанавливается установщик приложений Windows зависимостей. |
УРИ | Путь 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.
Элементы | Описание |
---|---|
ЧасыДоСледующейПроверкиОбновлений | Определяет минимальный разрыв в проверках обновления приложений Windows. |
ОбновлениеАктивацииБлоков | Определяет процесс проверки обновления приложения. |
ShowPrompt | Определяет, отображается ли окно при установке обновлений и при проверке обновлений. |
ОбновитьПринудительноИзЛюбойВерсии | Указывает, что следующая версия приложения может быть более новой или более старой. Если 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 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. Элемент HoursBetweenUpdateChecks доступен начиная с Windows 10 версии 1803.