Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как вручную создать файл установщика приложений, который определяет связанный набор с возможностью автоматического обновления и восстановления. Связанный набор не является одной сущностью, а скорее сочетанием основного пакета и необязательных пакетов.
Чтобы установить связанный набор как одну сущность, необходимо указать основной пакет и необязательный пакет как один. Для этого необходимо создать XML-файл с расширением APPInstaller для определения связанного набора. Установщик приложений использует файл *.appinstaller и позволяет пользователю устанавливать все определенные пакеты одним щелчком мыши.
Во время развертывания файл установщика приложений будет:
- Пакет приложения Windows, указанный в атрибуте
URIэлемента < MainPackage >, будет проверять целевой пакет приложения Windows по критериямName,PublisherиVersion. Если элемент Package/Identity в манифесте пакета приложения Windows не совпадает, установка завершится ошибкой. - Создайте ссылку на URI обновления и восстановления для семейства пакетов.
Создание файла установщика приложений
Чтобы распространить связанный набор как одну сущность, необходимо создать файл установщика приложений, содержащий элементы, необходимые для этой схемы установщика приложений.
- Создайте файл *.AppInstaller.
- Укажите атрибуты файла установщика приложений.
- Укажите основной пакет приложений Windows.
- Укажите связанный необязательный пакет.
- Укажите зависимость Windows app Framework Package.
- Укажите параметры обновления.
- Укажите пути 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, которое будет установлено с помощью файла установщика приложений.
<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 |
| Архитектура процессора | Архитектура, в которую устанавливается основной установщик приложений 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.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 в файле .appinstaller и Windows 10 версии 2004 (сборка 19041) или более поздней версии.
Эти параметры позволяют обновлять приложение Windows из URI установщика приложений, используя конфигурации, заданные на предыдущем шаге. URI обновления, настроенные на этом шаге, будут использоваться в качестве резервных URI, которые можно использовать, если исходный URI установщика приложений больше недоступен. Для любого приложения Windows можно настроить не более 10 URI обновлений.
URI обновления должны указывать на файлы App Installer.
Замечание
Эти параметры работают только в том случае, если схема настроена как 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 в файле .appinstaller и Windows 10 версии 2004 (сборка 19041) или более поздней версии.
Эти параметры позволяют восстановить приложение Windows, когда оно было изменено. Исходный установщик, используемый для восстановления приложения, можно настроить с помощью <RepairURIs> свойства. Приложение Windows попытается восстановить себя на основе URI установщика приложений; если он недоступен, он будет использовать 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.