Использование пакета SDK MSIX для распространения пакета MSIX на платформах, отличных от Windows 10
Пакет SDK MSIX предоставляет разработчикам универсальный способ распространения содержимого пакета на клиентские устройства независимо от платформы ОС на клиентском устройстве. Это позволяет разработчикам упаковать содержимое приложения один раз, а не упаковать для каждой платформы.
Чтобы воспользоваться преимуществами пакета SDK MSIX и возможностью распространения содержимого пакета на нескольких платформах, мы предоставляем способ указать целевые платформы, на которых требуется извлечь пакеты. Это означает, что содержимое пакета извлекается из пакета только по мере необходимости.
В следующей таблице показаны семейства целевых устройств для объявления в манифесте.
Платформа | Семья | Семейство целевых устройств | Примечания. | ||
---|---|---|---|---|---|
Windows 10 | Номер телефона | Platform.All |
Windows.Universal | Windows.Mobile | Мобильные устройства |
Настольный компьютер | Windows.Desktop | ПК | |||
Xbox | Windows.Xbox | Консоль Xbox | |||
Surface Hub | Windows.Team | Устройства Win 10 с большим экраном | |||
HoloLens | Windows.Holographic | Гарнитура VR/AR | |||
IoT | Windows.IoT | Устройства IoT | |||
iOS | Номер телефона | Apple.Ios.All | Apple.Ios. Телефон | i Телефон, Touch | |
Планшет | Apple.Ios.Tablet | iPad mini, iPad, iPad Pro | |||
TV | Apple.Ios.TV | Apple TV | |||
Смотреть | Apple.Ios.Watch | Iwatch | |||
MacOS | Настольный компьютер | Apple.MacOS.All | MacBook Pro, MacBook Air, Mac Mini, iMac | ||
Android | Номер телефона | Google.Android.All | Google.Android. Телефон | Мобильные устройства, предназначенные для любого вкуса Android | |
Планшет | Google.Android.Tablet | Планшеты под управлением Android | |||
Настольный компьютер | Google.Android.Desktop | Chromebooks | |||
TV | Google.Android.TV | Устройства с большим экраном Android | |||
Смотреть | Google.Android.Watch | Устройства Google шестеренки | |||
Windows | 7 | Windows7.Desktop | Устройства Windows 7 | ||
8 | Windows8.Desktop | Устройства Windows 8/8.1 | |||
Сеть | Microsoft | Web.All | Web.Edge.All | Приложения веб-подсистемы Edge | |
Android | Web.Blink.All | Приложения веб-подсистемы Blink | |||
Chrome | Web.Chromium.All | Приложения веб-подсистемы Chrome | |||
iOS | Web.Webkit.All | Приложения веб-подсистемы Webkit | |||
MacOS | Web.Safari.All | Приложения веб-подсистемы Safari | |||
Linux | Любой или все | Linux.All | Все дистрибутивы Linux |
В файле манифеста пакета приложения необходимо включить соответствующее семейство целевых устройств, если вы хотите, чтобы содержимое пакета было извлечено только на определенных платформах и устройствах. Если вы хотите, чтобы пакет поддерживался на всех платформах и типах устройств, выберите Platform.All в качестве семейства целевых устройств. Аналогичным образом, если вы хотите, чтобы пакет поддерживался только в веб-приложениях, выберите Web.All.
Пример файла манифеста (AppxManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
IgnorableNamespaces="mp uap uap3">
<Identity Name="BestAppExtension"
Publisher="CN=awesomepublisher"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="56a6ecda-c215-4864-b097-447edd1f49fe" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>Best App Extension</DisplayName>
<PublisherDisplayName>Awesome Publisher</PublisherDisplayName>
<Description>This is an extension package to my app</Description>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
</Dependencies>
<Applications>
<Application Id="App">
<uap:VisualElements
DisplayName="Best App Extension"
Description="This is the best app extension"
BackgroundColor="white"
Square150x150Logo="images\squareTile-sdk.png"
Square44x44Logo="images\smallTile-sdk.png"
AppListEntry="none">
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="Windows.appExtension">
<uap3:AppExtension Name="add-in-contract" Id="add-in" PublicFolder="Public" DisplayName="Sample Add-in" Description="This is a sample add-in">
<uap3:Properties>
<!--Free form space-->
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Версия платформы
В приведенном выше примере файла манифеста вместе с именем платформы также существуют параметры для указания параметра MinVersion и MaxVersionTested Эти параметры используются на платформах Windows 10. В Windows 10 пакет будет развернут только в версиях ОС Windows 10, превышающих MinVersion. На других платформах, отличных от Windows 10, параметры MinVersion и MaxVersionTested не используются для объявления о том, следует ли извлекать содержимое пакета.
Если вы хотите использовать пакет для всех платформ (Windows 10 и не Windows 10), рекомендуется использовать параметры MinVersion и MaxVersionTested, чтобы указать версии ОС Windows 10, в которых вы хотите работать приложение. Поэтому раздел зависимостей манифеста будет выглядеть следующим образом:
<Dependencies>
<TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.14393.0" MaxVersionTested="10.0.16294.0"/>
</Dependencies>
MinVersion и MaxVersionTested являются обязательными полями в манифесте, и они должны соответствовать нотации квадрата (#.#.#.#).#). Если вы используете только пакет SDK для упаковки MSIX только для платформ, отличных от Windows 10, вы можете просто использовать "0.0.0.0.0" в качестве версий MinVersion и MaxVersionTested.
Как эффективно использовать один и тот же пакет на всех платформах (Windows 10 и не Windows 10)
Чтобы получить большую часть пакета SDK для упаковки MSIX, необходимо создать пакет таким образом, который будет развернут как пакет приложения в Windows 10 и в то же время поддерживается на других платформах. В Windows 10 можно создать пакет как расширение приложения. Дополнительные сведения о расширениях приложений и о том, как они могут помочь сделать приложение расширяемым, см. в записи блога "Общие сведения о расширениях приложений ".
В примере файла манифеста, приведенном ранее в этой статье, вы заметите элемент Properties в элементе AppExtension . В этом разделе файла манифеста не выполняется проверка. Это позволяет разработчикам указывать необходимые метаданные между расширением и клиентским приложением.