次の方法で共有


MSIX パッケージ コンポーネントの生成

この記事では、コマンド ライン ツール (Visual Studio または MSIX パッケージ ツールを使用しない) を使用して、アプリケーションをパッケージ化するための MSIX パッケージ コンポーネントを生成する方法について説明します。

アプリを手動でパッケージ化するには、パッケージ マニフェスト ファイルを作成し、パッケージ コンポーネントを追加してから 、MakeAppx.exe コマンド ライン ツールを実行して MSIX パッケージを生成する必要があります。

まず、パッケージ化の準備をします

まだ行っていない場合は、 アプリケーションをパッケージ化する前に、このセクションで知っておくべきことを確認してください

パッケージ マニフェストを作成する

ファイルを作成し、 appxmanifest.xml名前を付けてから、この XML を追加します。

パッケージに必要な要素と属性を含む基本的なテンプレートです。 これらの値は、次のセクションで追加します。

<?xml version="1.0" encoding="utf-8"?>
<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
  <Properties>
    <DisplayName></DisplayName>
    <PublisherDisplayName></PublisherDisplayName>
    <Description></Description>
    <Logo></Logo>
  </Properties>
  <Resources>
    <Resource Language="" />
  </Resources>
  <Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
  </Dependencies>
  <Capabilities>
    <rescap:Capability Name="runFullTrust"/>
  </Capabilities>
  <Applications>
    <Application Id="" Executable=""
      uap10:RuntimeBehavior="packagedClassicApp"
      uap10:TrustLevel="mediumIL">
      <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
        Square44x44Logo="" BackgroundColor="" />
    </Application>
  </Applications>
</Package>

パッケージが Windows 10 バージョン 2004 (10.0; ビルド 19041) よりも古いシステムにインストールされる場合、EntryPointuap10:RuntimeBehaviorの代わりにuap10:TrustLevel属性を使用してください。 詳細と例については、Windows 10 バージョン 2004 (10.0;ビルド 19041) で導入された uap10 を参照してください。

ファイルのパッケージ レベルの要素を入力します

このテンプレートに、パッケージについて説明する情報を入力します。

ID 情報

属性のプレースホルダー テキストを含む Identity 要素の例を次に示します。 ProcessorArchitecture属性は、x64x86arm(32ビットARM)、arm64、またはneutralです。

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
			    ProcessorArchitecture="x64">

Microsoft Store でアプリケーション名を予約している場合は、 パートナー センターを使用して名前と発行元を取得できます。 アプリケーションを他のシステムにサイドロードする場合は、選択した発行元名が、アプリの署名に使用する証明書の名前と一致する限り、独自の名前を指定できます。

特性

Properties 要素には、3 つの必須の子要素があります。 要素のプレースホルダー テキストを含む Properties ノードの例を次に示します。 DisplayName は、ストアで予約するアプリケーションの名前で、ストアにアップロードされるアプリに使われます。

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

リソース

リソース ノードの例を次に示します。

<Resources>
  <Resource Language="en-us" />
</Resources>

依存関係

パッケージを作成するデスクトップ アプリの場合は、常に Name 属性を Windows.Desktop に設定します。

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

能力

1 つ以上の完全信頼アプリを含むパッケージの場合は、次に示すように、 runFullTrust 制限された機能を宣言する必要があります。 完全な詳細と完全信頼アプリの定義については、アプリ機能宣言完全信頼アクセス許可レベルを検索します)。

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

アプリケーション レベルの要素を入力する

このテンプレートに、アプリについて説明する情報を入力します。

アプリケーション要素

パッケージを作成するデスクトップ アプリの場合は、次のように Application 要素を構成します。

<Applications>
  <Application Id="MyApp" Executable="MyApp.exe"
		 uap10:RuntimeBehavior="packagedClassicApp"
     uap10:TrustLevel="mediumIL">
   </Application>
</Applications>

パッケージが Windows 10 バージョン 2004 (10.0; ビルド 19041) よりも古いシステムにインストールされる場合、EntryPointuap10:RuntimeBehaviorの代わりにuap10:TrustLevel属性を使用してください。 詳細と例については、Windows 10 バージョン 2004 (10.0;ビルド 19041) で導入された uap10 を参照してください。

ビジュアル要素

VisualElements ノードの例を次に示します。

<uap:VisualElements
	BackgroundColor="#464646"
	DisplayName="My App"
	Square150x150Logo="images\icon.png"
	Square44x44Logo="images\small_icon.png"
	Description="A useful description" />

(省略可能)ターゲット ベースの未めっきアセットを追加する

ターゲット ベースのアセットは、Windows タスク バー、タスク ビュー、Alt + TAB、スナップ アシスト、スタート タイルの右下隅に表示されるアイコンとタイルを対象とします。 詳細については、 こちらをご覧ください

  1. 正しい 44 x 44 のイメージを取得し、イメージ (アセット) を含むフォルダーにコピーします。

  2. 44 x 44 イメージごとに、同じフォルダーにコピーを作成し、ファイル名に .targetsize-44_altform-unplated を追加します。 各アイコンの 2 つのコピーが必要です。それぞれに特定の方法で名前が付けられています。 たとえば、プロセスを完了した後、assets フォルダーに MYAPP_44x44.pngMYAPP_44x44.targetsize-44_altform-unplated.pngが含まれている場合があります。

    この例では、 MYAPP_44x44.png という名前のアイコンは、MSIX パッケージの Square44x44Logo ロゴ属性で参照するアイコンです。

  3. マニフェスト ファイルで、透明化するすべてのアイコンの BackgroundColor を設定します。

  4. 次のサブセクションに進み、新しいパッケージ リソース インデックス ファイルを生成します。

MakePri を使用してパッケージ リソース インデックス (PRI) ファイルを生成する

前のセクションで説明したようにターゲット ベースのアセットを作成する場合、またはパッケージを作成した後にアプリケーションのビジュアルアセットを変更する場合は、新しい PRI ファイルを生成する必要があります。

SDK のインストール パスに基づいて、 MakePri.exeは Windows PC 上にあります。

  • x86: C:\Program Files (x86)\Windows Kits\10\bin\<ビルド番号>\x86\makepri.exe
  • x64: C:\Program Files (x86)\Windows Kits\10\bin\<ビルド番号>\x64\makepri.exe

このツールの ARM バージョンはありません。

  1. コマンド プロンプトまたは PowerShell ウィンドウを開きます。

  2. パッケージのルート フォルダーにディレクトリを変更し、コマンド <path>\makepri.exe createconfig /cf priconfig.xml /dq en-USを実行して priconfig.xml ファイルを作成します。

  3. コマンド <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xmlを使用して resources.pri ファイルを作成します。

    たとえば、アプリケーションのコマンドは次のようになります: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml

  4. 次の手順の手順を使用して、アプリケーションをパッケージ化します。

パッケージ化する前にアプリケーションをテストする

パッケージ化されていないアプリケーションをデプロイし、パッケージ化または署名する前にテストできます。 これを行うには、PowerShell ウィンドウから以下のコマンドレットを実行します。 パッケージ ディレクトリのルートにあるアプリケーションのマニフェスト ファイルを、他のすべてのパッケージ コンポーネントと共に渡してください。

Add-AppxPackage –Register AppxManifest.xml

これが完了したら、 アプリはシステムにデプロイする必要があり、パッケージ化する前にすべてが機能することを確認するためにテストできます。 アプリの .exe または .dll ファイルを更新するには、パッケージ内の既存のファイルを新しいファイルに置き換え、AppxManifest.xmlのバージョン番号を増やしてから、上記のコマンドをもう一度実行します。

コンポーネントを MSIX にパッケージ化する

次の手順では、 MakeAppx.exe を使用してアプリケーションの MSIX パッケージを生成します。 Makeappx.exe は Windows SDK に含まれており、Visual Studio がインストールされている場合は、Visual Studio の開発者コマンド プロンプトから簡単にアクセスできます。

「MakeAppx.exe ツールを使用して MSIX パッケージまたはバンドルを作成する」を参照してください

パッケージ 化されたアプリケーションは常に対話型ユーザーとして実行され、パッケージ 化されたアプリケーションをインストールするドライブは NTFS 形式にする必要があります。