Share via


MSIX SDK を使用して Windows 10 以外のプラットフォームで MSIX パッケージを配布する

MSIX SDK は、クライアント デバイスの OS プラットフォームに関係なく、パッケージ コンテンツをクライアント デバイスに配布するための汎用的な方法を開発者に提供します。 これにより、開発者は、プラットフォームごとにパッケージ化する代わりに、アプリのコンテンツを 1 回でパッケージ化できます。

MSIX SDK とパッケージ コンテンツを複数のプラットフォームに配布する機能を利用するために、パッケージを抽出するターゲット プラットフォームを指定する方法が用意されています。 つまり、パッケージの内容が必要なときにのみパッケージから抽出されるようにすることができます。

次の表に、マニフェストで宣言するターゲット デバイス ファミリを示します。

プラットフォーム 家族 ターゲット デバイス ファミリ メモ
Windows 10 電話番号





















Platform.All























Windows.Universal Windows.Mobile モバイル デバイス
デスクトップ Windows.Desktop PC
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.Phone iPhone、Touch
タブレット PC 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.Phone Android の任意のフレーバーを対象とするモバイル デバイス
タブレット PC Google.Android.Tablet Android タブレット
デスクトップ Google.Android.Desktop Chromebook
TV Google.Android.TV Android 大画面デバイス
視聴する Google.Android.Watch Google 周辺機器デバイス
Windows 7 Windows7.Desktop Windows 7 デバイス
8 Windows8.Desktop Windows 8/8.1 デバイス
Web Microsoft Web.All Web.Edge.All Edge Web エンジン アプリ
Android Web.Blink.All Blink Web エンジン アプリ
Chrome Web.Chromium.All Chrome Web エンジン アプリ
iOS Web.Webkit.All Webkit Web エンジン アプリ
MacOS Web.Safari.All Safari Web エンジン アプリ
Linux Any/All Linux.All すべての Linux ディストリビューション

パッケージの内容が特定のプラットフォームとデバイスでのみ抽出されるようにする場合は、アプリ パッケージ マニフェスト ファイルに適切なターゲット デバイス ファミリを含める必要があります。 パッケージをすべてのプラットフォームとデバイスの種類でサポートされるようにビルドする場合は、ターゲット デバイス ファミリとして Platform.All を選びます。 同様に、パッケージが Web アプリでのみサポートされるようにする場合は、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 では、このパッケージは MinVersion より大きい Windows 10 OS バージョンにのみデプロイされます。 その他の Windows 10 以外のプラットフォームでは、パッケージの内容を抽出するかどうかを宣言するために MinVersion と MaxVersionTested パラメーターは使用されません。

すべてのプラットフォーム (Windows 10 および Windows 10 以外) にパッケージを使用する場合は、MinVersion パラメーターと MaxVersionTested パラメーターを使用して、アプリを動作させる Windows 10 OS バージョンを指定することをお勧めします。 そるすると、マニフェストの Dependencies セクションは次のようになります。

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

MinVersionMaxVersionTested はマニフェストの必須フィールドであり、クアッド表記 (#.#.#.#) に準拠する必要があります。 Windows 10 以外のプラットフォームにのみ MSIX パッケージ SDK を使用している場合は、MinVersion および MaxVersionTested のバージョンとして '0.0.0.0' を使用できます。

すべてのプラットフォーム (Windows 10 および Windows 10 以外) で同じパッケージを効果的に使用する方法

MSIX パッケージ SDK を最大限に活用するには、Windows 10 でアプリ パッケージのようにデプロイされ、同時に他のプラットフォームでもサポートされる方法でパッケージをビルドする必要があります。 Windows 10 では、パッケージをアプリ拡張機能としてビルドできます。 アプリ拡張機能と、アプリを拡張可能にする方法の詳細については、ブログ記事「アプリ拡張機能の概要」を参照してください。

この記事で前に示したマニフェスト ファイルの例では、AppExtension 要素内に Properties 要素があります。 マニフェスト ファイルのこのセクションでは、検証は実行されません。 これにより、開発者は拡張機能とホスト/クライアント アプリの間で必要なメタデータを指定できます。