Visual Studio によるアプリ パッケージ マニフェストの生成方法
Visual Studio を使用してプロジェクトをビルドすると、Visual Studio によってパッケージ マニフェスト (AppxManifest.xml) が生成されます。このマニフェストには、システムが ユニバーサル Windows プラットフォーム (UWP) アプリをデプロイ、表示、または更新するために必要な情報が含まれます。
次の 2 種類のアプリ パッケージ マニフェスト ファイルを使用してアプリを開発する場合に発生Visual Studio
- Package.appxmanifest
これは、発行元情報、ロゴ、プロセッサ アーキテクチャなど、アプリの詳細を構成するために開発者が使用する XML スタイル ファイルです。これは、アプリ開発中に使用されるアプリ パッケージ マニフェストの簡単に構成可能な一時バージョンです。 - AppxManifest.xml
このファイルは、ビルド プロセスVisual Studio生成され、Package.appxmanifest ファイル内の情報に基づいて作成されます。 これは、発行されたアプリとサイドロードされたアプリで使用されるアプリ パッケージ マニフェストの最終バージョンです。 Package.appxmanifest ファイルに対して更新が行われた場合は、プロジェクトをリビルドして、AppxManifest.xml ファイルで更新を確認する必要があります。
パッケージ化プロセスの概要については、「パッケージを使用して UWP アプリをパッケージ化する」をVisual Studio。
アプリ マニフェストの検証
アプリを発行する前に、Visual Studio の検証チェックで失敗したエラーがあればすべて修正する必要があります。 Visual Studio でマニフェストが生成されると、Visual Studio はアプリを次の方法で検証します。
- 構文検証
アプリ マニフェストのすべてのデータがアプリ マニフェストのスキーマに準拠しているかどうかを確認します。 - セマンティック検証
Visual Studio で、情報のコンテキストに基づいて、予想されるデータのガイダンスが提供されます。
注意
これらのセクションで、探しているフィールドが言及されていない場合は、個別に構成されている可能性があるデータか、マニフェスト スキーマの既定値から生成されます。
マニフェストのコンテンツの生成
Visual Studio、アプリ パッケージの AppxManifest.xml ファイルを生成するときに、次の表のフィールドを設定します。
ID
アプリ Identity
マニフェストの セクションには、次のフィールドが含まれています。
フィールド | 説明 |
---|---|
名前 | 次のシナリオでは、パッケージの名前が異なる方法で設定されます。
|
Publisher | 発行元の名前。 この名前は、次のシナリオごとに設定される方法が異なります。
|
バージョン | ビルドするアプリのバージョン。 これは通常、アプリが変更およびパッケージ化されるごとに増分されます。 が正しくインクリメントされるようにVersion するには、ストア -> アプリ パッケージの作成...を呼び出す際に表示されるダイアログを使用して、更新を行います。 |
ProcessorArchitecture | プロジェクトに指定したビルド構成に基づいて生成される 値。 プロジェクト内のプロジェクト参照またはファイル参照がアプリ パッケージとは異なる特定のアーキテクチャを対象とする場合は、ビルド エラーがスローされ、すべての参照で動作するアプリ パッケージのターゲット アーキテクチャを変更する必要があります。 |
出力 XML の例を次に Identity
示します。
<Identity Name="Microsoft.UWPAppExample"
Publisher="CN=Microsoft Corporation"
Version="1.0.0.0"
ProcessorArchitecture="x86" />
プロパティ
アプリ Properties
マニフェストの セクションには、次の表のフィールドが含まれています。
フィールド | 説明 |
---|---|
PublisherDisplayName | この文字列は、次のシナリオでは異なる方法で設定されます。
|
DisplayName | この文字列は、次のシナリオごとに設定される方法が異なります。
|
ロゴ | 既定Visual Studioテンプレートでは がAssets\StoreLogo.png 使用されます。 この値は、開発者が Package.appxmanifest ファイルでカスタマイズする必要があります。 |
出力 XML の例を次に Properties
示します。
<Properties>
<DisplayName>UWP App Example</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
Application
アプリ マニフェストには複数の要素を Application
含め、それぞれがクライアントのタイルに表示される表示名を持つ場合があります。 アプリ Application
マニフェストの セクションには、次の表のフィールドが含まれています。
フィールド | 説明 |
---|---|
Id | この文字列は、次のシナリオごとに設定される方法が異なります。
|
実行可能ファイル | このフィールドの値は、プロジェクト アセンブリの出力名です。 ソース マニフェスト ファイル (Package.appxmanifest) で使用される実行可能トークン $targetnametoken$.exe は、マニフェストのビルド時に実際のファイル名に置き換えられる。 |
EntryPoint | この値は、生成された 値と 値に Executable 基づいて作成 Id されます。 |
出力例 Application
:
<Applications>
<Application Id="App" Executable="UWPAppExample.exe" EntryPoint="UWPAppExample.App">
<!-- Other elements configured within the Application, such as Extensions, VisualElements, etc. -->
</Applications>
PackageDependency
セクションPackageDependency
には、このパッケージWindowsコンポーネント ライブラリのすべての依存関係が含まれています。 たとえば、プロジェクトに WinJS への参照がある場合、Visual Studioマニフェストが生成されると、依存関係のパッケージ ID 情報が取得されます。 Visual Studio、このセクションに、各依存パッケージの Name
フィールドMinVersion
と フィールドを設定します。
ネイティブ C++ プロジェクトでは、Visual Studio Visual C/C++ ランタイムへの参照が追加されます。
<Dependencies>
<PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>
Windows ランタイム登録拡張機能
アプリのWindows ランタイムコンポーネントを実装できますが、正しく実行するには、それらのコンポーネントをオペレーティング システムに登録する必要があります。 アプリケーション コンポーネントをWindows ランタイムするには、WinMD ファイルとアプリ マニフェストに登録情報を配置する必要があります。 プロジェクトが新しいコンポーネントをWindows ランタイム場合、プロジェクトのビルド出力には WinMD ファイルが含まれるはずです。 Visual Studio WinMD ファイルWindows ランタイム登録情報を抽出し、アプリ マニフェストExtension
に適切な要素を生成します。
システムでは、.dll サーバー (インプロセス) と .exe サーバー (アウトプロセス) の 2 つの形式のサーバーがサポートされます。 これらのサーバーには、似ているが異なる登録情報が必要で、この情報をアプリ マニフェストにコピーする必要があります。 Visual Studio では、.dll サーバーのマニフェスト生成のみがサポートされており、.dll サーバーを登録するには、DLLServer 拡張機能が必要です。 アプリ マニフェストの次の値は、DLLServer 拡張機能を構築するために WinMD ファイルから取得されます。
- DllPath
- ActivatableClassId
- ThreadingModel
- ActivatableClass (ActivatableClassId 属性)
出力 XML の例を次に示します。
<extension category="Microsoft.Windows.ActivatableClass">
<dllServer>
<dllPath>Fabrikam.dll</dllPath>
<activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
</dllServer>
</extension>
このトピックの詳細については、「 Windows ランタイムコンポーネント」を参照してください。
リソース
このセクションに Resources
は、アプリケーションがサポートする各言語のエントリが含まれています。 アプリマニフェストには、少なくとも1つのリソース言語が指定されている必要があります。 プロジェクトのローカリゼーション情報に基づいて、サポートされている言語のリストが Visual Studio で自動的に生成されます。 ソースマニフェストファイル (package.appxmanifest) で使用されるリソース言語トークン "x generate" は、マニフェストのビルド時に実際の言語コードに置き換えられます。 出力 XML の例を次に示します。
<Resources>
<Resource Language="en-us">
<Resource Language="fr-fr">
</Resources>
リストの最初のエントリはアプリケーションの既定の言語です。
TargetDeviceFamily
セクションに TargetDeviceFamily
は、次のフィールドがあります。
- 名前
- MinVersion
- MaxVersionTested
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>
これらの要素は MSBuild プロパティから設定されます。
こちらもご覧ください
Visual Studio で UWP アプリをパッケージ化する
アプリ パッケージのアーキテクチャ
Windows 10 パッケージ マニフェストのスキーマ参照