次の方法で共有


アプリケーション マニフェスト

アプリケーション マニフェスト (side-by-side アプリケーション マニフェストまたは fusion マニフェストとも呼ばれます) は、実行時にアプリケーションがバインドする必要がある共有アセンブリとプライベート サイド バイ サイド アセンブリを記述して識別する XML ファイルです。 これらは、アプリケーションのテストに使用されたのと同じアセンブリ バージョンである必要があります。 アプリケーション マニフェストでは、アプリケーションに対してプライベートなファイルのメタデータを記述することもできます。

XML スキーマの完全な一覧については、「マニフェスト ファイルスキーマ 参照してください。

アプリケーション マニフェストには、次の要素と属性があります。

要素 属性 必須
アセンブリする はい
manifestVersion する はい
noInheritする いいえ
assemblyIdentityする はい
はい
名の はい
言語 いいえ
processorArchitecture いいえ
バージョンの はい
publicKeyToken する いいえ
互換性 いいえ
アプリケーション いいえ
サポートされているOSする いいえ
ID はい
maxversiontestedする いいえ
ID はい
依存関係 いいえ
dependentAssemblyする いいえ
ファイルの いいえ
名の はい
hashalg する いいえ
ハッシュ いいえ
activatableClass いいえ
名の はい
threadingModel はい
activeCodePageする いいえ
autoElevateする いいえ
disableThemingを無効にする いいえ
disableWindowFilteringする いいえ
dpiAware いいえ
dpiAwareness いいえ
gdiScaling いいえ
highResolutionScrollingAware いいえ
longPathAwareする いいえ
printerDriverIsolationする いいえ
ultraHighResolutionScrollingAware いいえ
msixする いいえ
heapTypeする いいえ
サポート Architectures いいえ
trustInfoする いいえ

ファイルの場所

可能であれば、アプリケーションマニフェストをリソースとしてアプリケーションの .exe ファイルまたは .dllに埋め込む必要があります。 それができない場合は、アプリケーション マニフェスト ファイルを .exe または .dllと同じディレクトリに配置できます。

詳細については、「サイド バイ サイド アセンブリのインストール」を参照してください。

ファイル名

慣例により、アプリケーション マニフェストにはアプリの実行可能ファイルと同じ名前を付け、.manifest 拡張子を追加する必要があります。

たとえば、example.exe または example.dll を参照するアプリケーション マニフェストでは、次のファイル名構文を使用する必要があります (リソース ID 1 の場合は、構文の <リソース ID> セグメントを省略できます)。

example.exe..manifest>リソース ID を<する

example.dll..manifest>リソース ID を<する

元素

要素と属性の名前では、大文字と小文字が区別されます。 型属性の値を除き、要素と属性の値では大文字と小文字が区別されません。

集会

コンテナー要素。 最初のサブ要素は、noInherit または assemblyIdentity 要素 する必要があります。 必須。

アセンブリ 要素は、名前空間 urn:schemas-microsoft-com:asm.v1内にある必要があります。 アセンブリの子要素も、継承またはタグ付けによって、この名前空間に存在する必要があります。

アセンブリ 要素には、次の属性があります。

属性 形容
manifestVersion する manifestVersion 属性を 1.0に設定する必要があります。

noInherit

この要素をアプリケーション マニフェストに含め、マニフェストから生成 アクティブ化コンテキストを "継承なし" フラグで設定します。 このフラグがアクティブ化コンテキストで設定されておらず、アクティブ化コンテキストがアクティブな場合、同じプロセス、ウィンドウ、ウィンドウ プロシージャ、および 非同期プロシージャ 呼び出し内の新しいスレッドによって継承されます。 このフラグを設定すると、新しいオブジェクトがアクティブなコンテキストを継承できなくなります。

noInherit 要素は省略可能であり、通常は省略されます。 アセンブリは、独自のアクティブ化コンテキストの伝達を管理するように明示的に設計する必要があるため、ほとんどのアセンブリは、継承なしのアクティブ化コンテキストを使用して正しく動作しません。 noInherit 要素を使用するには、アプリケーション マニフェストによって参照されるすべての依存アセンブリが、アセンブリ マニフェストnoInherit 要素を持っている必要があります。

マニフェスト noInherit を使用する場合は、アセンブリ 要素の最初のサブ要素である必要があります。 assemblyIdentity 要素は、noInherit 要素の直後に来る必要があります。 noInherit 使用しない場合、assemblyIdentity は、アセンブリ 要素の最初のサブ要素である必要があります。 noInherit 要素には子要素がありません。 これは、アセンブリ マニフェスト 有効な要素ではありません。

assemblyIdentity

アセンブリ 要素の最初のサブ要素として、assemblyIdentity は、このアプリケーション マニフェストを所有するアプリケーションを記述し、一意に識別します。 dependentAssembly 要素の最初のサブ要素として、assemblyIdentity は、アプリケーションで必要なサイド バイ サイド アセンブリを記述します。 アプリケーション マニフェストで参照されるすべてのアセンブリには、参照されるアセンブリのアセンブリ マニフェスト内の assemblyIdentity と完全に一致する assemblyIdentity が必要です。

assemblyIdentity 要素には、次の属性があります。 サブ要素はありません。

属性 形容
アプリケーションまたはアセンブリの種類を指定します。 値は win32 し、すべて小文字で指定する必要があります。 必須。
名の アプリケーションまたはアセンブリに一意の名前を付けます。 名前には、次の形式を使用します: Organization.Division.Name. たとえば、Microsoft.Windows.mysampleAppします。 必須。
言語 アプリケーションまたはアセンブリの言語を識別します。 アプリケーションまたはアセンブリが言語固有の場合は、DHTML 言語コードを指定します。 assemblyIdentity では、世界中で使用することを目的としたアプリケーションの (言語に依存しない) では、言語属性は省略されます。
assemblyIdentity で、世界中で使用することを目的としたアセンブリ (言語に依存しない) では、言語の値を *に設定します。 随意。
processorArchitecture プロセッサを指定します。 有効な値には、x86amd64arm、および arm64が含まれます。 *を指定して、すべてのプラットフォームを対象にすることもできます。 随意。
バージョンの アプリケーションまたはアセンブリのバージョンを指定します。 4 部構成のバージョン形式 (mmmmm.nnnnn.ooooo.ppppp) を使用します。 期間で区切られた各部分は、0 から 65535 までの範囲で指定できます。 詳細については、「アセンブリバージョン を参照してください。 必須。
publicKeyToken する アプリケーションまたはアセンブリが署名されている公開キーの SHA-1 ハッシュの最後の 8 バイトを表す 16 文字の 16 進文字列。 カタログの署名に使用される公開キーは、2048 ビット以上である必要があります。 すべての共有サイド バイ サイド アセンブリに必要です。
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 ...
<dependency>
   <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
       />
   </dependentAssembly>
</dependency>
...
</assembly>

互換性

少なくとも 1 つの アプリケーションが含まれています。 属性はありません。 随意。 互換性要素のないアプリケーション マニフェストは、Windows 7 での Windows Vista の互換性に既定で設定されます。

互換性 要素は、名前空間 urn:schemas-microsoft-com:compatibility.v1内にある必要があります。 互換性 の子要素も、継承またはタグ付けによって、この名前空間に含まれている必要があります。

アプリケーション

サポートされているOS 要素 少なくとも 1 つ含まれています。 Windows 10 バージョン 1903 以降では、maxversiontested 要素 省略可能な要素を 1 つ含めることもできます。 属性はありません。 随意。

supportedOS

サポートされている OS 要素には、次の属性があります。 サブ要素はありません。

属性 形容
ID Vista 機能を使用してアプリケーションを実行するには、Id 属性を {e2011457-1546-43c5-a5fe-008deee3d3f0} に設定します。 これにより、Windows Vista 用に設計されたアプリケーションを後のオペレーティング システムで実行できます。
Windows 7 機能を使用してアプリケーションを実行するには、Id 属性を {35138b9a-5d96-4fbd-8e2d-a2440225f93a} に設定します。
Windows Vista、Windows 7、および Windows 8 の機能をサポートするアプリケーションでは、個別のマニフェストは必要ありません。 この場合は、すべての Windows オペレーティング システムの GUID を追加します。
Windows での ID 属性の動作の詳細については、Windows 8 と Windows Server 2012 の互換性クックブックの を参照してください。
次の GUID は、指定されたオペレーティング システムに対応します。
{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} -> Windows 10、Windows 11、Windows Server 2016、Windows Server 2019、Windows Server 2022
{1f676c76-80e1-4239-95bb-83d0f6d0da78} -> Windows 8.1 および Windows Server 2012 R2
{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38} -> Windows 8 および Windows Server 2012
{35138b9a-5d96-4fbd-8e2d-a2440225f93a} -> Windows 7 および Windows Server 2008 R2
{e2011457-1546-43c5-a5fe-008deee3d3f0} -> Windows Vista および Windows Server 2008
これを Windows 7 または Windows 8.x でテストするには、リソース モニター (resmon) を実行し、[CPU] タブに移動し、列ラベル "列の選択..." を右クリックして、[オペレーティング システム コンテキスト] をオンにします。 Windows 8.x では、この列はタスク マネージャー (taskmgr) でも確認できます。 列の内容には、見つかった最大値または既定値として "Windows Vista" が表示されます。

maxversiontested

maxversiontested 要素は、アプリケーションがサポートする最小 OS バージョンから最大バージョンまで、アプリケーションがテストされた Windows のバージョンを指定します。 バージョンの完全なセットは、ここで 見つけることができます. これは、XAML Islands を使用し、MSIX パッケージに展開されていないデスクトップ アプリケーションで使用することを目的としています。 この要素は、Windows 10 バージョン 1903 以降のバージョンでサポートされています。

maxversiontested 要素 には、次の属性があります。 サブ要素はありません。

属性 形容
ID Id 属性を、アプリケーションがテストされた Windows の最大バージョンを指定する 4 部構成のバージョン文字列に設定します。 たとえば、Windows 10 バージョン 1903 の場合は "10.0.18362.1" です。 必須。
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!-- Windows 10, version 1903 -->
            <maxversiontested Id="10.0.18362.1"/>
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
        </application>
    </compatibility>
...
</assembly>

属国

dependentAssembly 少なくとも 1 つ含まれています。 属性はありません。 随意。

dependentAssembly

dependentAssembly の最初のサブ要素は、アプリケーションで必要なサイド バイ サイド アセンブリを記述する assemblyIdentity 要素である必要があります。 すべての dependentAssembly は、1 つの 依存関係内に存在する必要があります。 属性はありません。

ファイル

アプリケーションに対してプライベートなファイルを指定します。 随意。

ファイル 要素には、次の表に示す属性があります。

属性 形容
名の ファイルの名前。 たとえば、Comctl32.dllします。 必須。
hashalg する ファイルのハッシュを作成するために使用されるアルゴリズム。 この値は SHA1 にする必要があります。 随意。
ハッシュ 名前で参照されるファイルのハッシュ。 ハッシュ アルゴリズムに応じた長さの 16 進数文字列。 随意。

activatableClass

パッケージ化されていないデスクトップ アプリがユーザー定義 Windows ランタイム (WinRT) コンポーネントを使用できるようにします。 この要素は、Windows 10 バージョン 1903 以降のバージョンでサポートされています。 詳細については、この記事 参照してください。

activatableClass 要素は、名前空間 urn:schemas-microsoft-com:winrt.v1に存在する必要があります。

activatableClass 要素には、次の属性があります。

属性 形容
名の アクティブ化可能なクラスのクラス識別子を指定します。 必須。
threadingModel インプロセス サーバーのアクティブ化に使用するアパートメント スレッド モデルを表します。 有効な値には、bothSTA、または MTAが含まれます。 詳細については、この記事 を参照してください。 必須。
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
...
<file name="WinRTComponent.dll">
    <activatableClass
        name="WinRTComponent.MessageHolder"
        threadingModel="both"
        xmlns="urn:schemas-microsoft-com:winrt.v1"
     />
</file>
...
</assembly>

activeCodePage

Windows 10 では、この要素により、プロセス コード ページとして UTF-8 が強制的に使用されます。 詳細については、「UTF-8 コード ページを使用する」を参照してください。 Windows 10 では、activeCodePage の有効な値は UTF-8 のみです。

Windows 11 以降では、この要素では、従来の UTF-8 以外のコード ページまたはレガシ アプリケーションの互換性のために特定のロケールのコード ページを選択することもできます。 最新のアプリケーションでは、Unicode を使用することを強くお勧めします。 Windows 11 では、activeCodePage 、レガシ またはロケール名 (en-USja-JPなど) 値に設定することもできます。

  • UTF-8 システムのアクティブなコード ページに構成されたマシンでは、レガシ プロセスをシステム ロケール コード ページに戻します。 システム ロケールにコード ページが定義されていない場合は、Windows-1252/437 が使用されます。 レガシ コードページ設定は、Fusion マニフェストでのみサポートされ、Windows 11 以降でのみサポートされます。
  • en-US などのロケール名を指定すると、そのロケール コード ページに対してプロセス コード ページが適切に設定されます。 たとえば、Windows-1252 と 437 (en-USの場合) や 932 (ja-JP) などです。

この要素は、Windows 10 バージョン 1903 (2019 年 5 月の更新プログラム) で最初に追加されました。 以前の Windows ビルドでは、このプロパティとターゲット/実行を宣言できますが、従来のコード ページの検出と変換は通常どおり処理する必要があります。 この要素には属性がありません。

次の例では、この要素を使用して、現在のプロセスでプロセス コード ページとして UTF-8 を強制的に使用する方法を示します。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings"> 
      <activeCodePage>UTF-8</activeCodePage> 
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

autoElevate

自動昇格を有効にするかどうかを指定します。 TRUE は有効であることを示します。 属性はありません。 実行可能ファイルは、Windows Publisher によってデジタル署名されている必要があります。 内部使用の場合。

disableTheming

UI 要素にテーマを与えるかどうかを指定します。 TRUE は無効であることを示します。 属性はありません。

disableWindowFiltering

ウィンドウのフィルター処理を無効にするかどうかを指定します。 TRUE ではウィンドウのフィルター処理が無効になるため、デスクトップからイマーシブ ウィンドウを列挙できます。 disableWindowFiltering Windows 8 で追加され、属性はありません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
      <disableWindowFiltering>true</disableWindowFiltering>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

dpiAware

現在のプロセスが 1 インチあたりのドット数 (dpi) に対応するかどうかを指定します。

Windows 10 バージョン 1607:dpiAware 要素が存在する場合、dpiAware 要素は無視されます。 Windows 10 バージョン 1607 で以前のバージョンのオペレーティング システムとは異なる動作を指定する場合は、両方の要素をマニフェストに含めることができます。

次の表は、dpiAware 要素の存在と、それに含まれるテキストに基づいて発生する動作について説明します。 要素内のテキストでは、大文字と小文字は区別されません。

dpiAware 要素の状態 形容
欠席する 現在のプロセスは、既定では認識されていない dpi です。 SetProcessDpiAwareness を呼び出すか、SetProcessDPIAware関数することにより、プログラムによってこの設定を変更できます。
"true" が含まれています 現在のプロセスはシステム dpi 対応です。
"false" が含まれています Windows Vista、Windows 7、Windows 8:dpiAware がない場合と同じ動作になります。
Windows 8.1 および Windows 10: 現在のプロセスは dpi 認識されません。SetProcessDpiAwareness を呼び出すか、SetProcessDPIAware関数呼び出してプログラムでこの設定を変更することはできません。
"true/pm" が含まれています Windows Vista、Windows 7、Windows 8: 現在のプロセスはシステム dpi 対応です。
Windows 8.1 および Windows 10: 現在のプロセスはモニターごとの dpi 対応です。
"モニターごと" が含まれています Windows Vista、Windows 7、Windows 8:dpiAware がない場合と同じ動作になります。
Windows 8.1 および Windows 10: 現在のプロセスはモニターごとの dpi 対応です。
その他の文字列を含む Windows Vista、Windows 7、Windows 8:dpiAware がない場合と同じ動作になります。
Windows 8.1 および Windows 10: 現在のプロセスは dpi 認識されません。SetProcessDpiAwareness を呼び出すか、SetProcessDPIAware関数呼び出してプログラムでこの設定を変更することはできません。

dpi 認識設定の詳細については、「Windows での高 DPI デスクトップ アプリケーション開発」を参照してください。

dpiAware には属性がありません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

dpiAwareness

現在のプロセスが 1 インチあたりのドット数 (dpi) に対応するかどうかを指定します。

dpiAwareness 要素をサポートするオペレーティング システムの最小バージョンは、Windows 10 バージョン 1607 です。 dpiAwareness 要素をサポートするバージョンの場合、dpiAwarenessdpiAware 要素をオーバーライドします。 Windows 10 バージョン 1607 で以前のバージョンのオペレーティング システムとは異なる動作を指定する場合は、両方の要素をマニフェストに含めることができます。

dpiAwareness 要素には、1 つの項目またはコンマ区切りの項目のリストを含めることができます。 後者の場合、オペレーティング システムによって認識されるリストの最初の (左端の) 項目が使用されます。 これにより、将来の Windows オペレーティング システムのバージョンでサポートされるさまざまな動作を指定できます。

次の表は、dpiAwareness 要素の存在と、その要素が左端の認識された項目に含まれているテキストに基づいて発生する動作を示しています。 要素内のテキストでは、大文字と小文字は区別されません。

要素の状態 dpiAwareness を します。 形容
要素が存在しない dpiAware 要素は、プロセスが dpi 対応かどうかを指定します。
認識された項目が含まれています 現在のプロセスは、既定では認識されていない dpi です。 SetProcessDpiAwareness を呼び出すか、SetProcessDPIAware関数することにより、プログラムによってこの設定を変更できます。
最初に認識された項目は "system" です 現在のプロセスはシステム dpi 対応です。
最初に認識された項目は "permonitor" です 現在のプロセスはモニターごとの dpi 対応です。
最初に認識される項目は "permonitorv2" です 現在のプロセスでは、モニターごとの v2 dpi 認識コンテキストが使用されます。 この項目は、Windows 10 バージョン 1703 以降でのみ認識されます。
最初に認識された項目が "認識されていません" 現在のプロセスでは、dpi が認識されていない。 SetProcessDpiAwareness を呼び出すか、SetProcessDPIAware関数プログラムでこの設定を変更することはできません。

この要素でサポートされる dpi 認識設定の詳細については、DPI_AWARENESSDPI_AWARENESS_CONTEXTを参照してください。

dpiAwareness には属性がありません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <dpiAwareness>PerMonitorV2, unaware</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

gdiScaling

GDI スケーリングを有効にするかどうかを指定します。 gdiScaling 要素をサポートするオペレーティング システムの最小バージョンは、Windows 10 バージョン 1703 です。

GDI (グラフィックス デバイス インターフェイス) フレームワークは、アプリケーション自体を更新することなく、モニターごとにプリミティブとテキストに DPI スケーリングを適用できます。 これは、GDI アプリケーションがアクティブに更新されなくなった場合に役立ちます。

非ベクター グラフィックス (ビットマップ、アイコン、ツール バーなど) は、この要素でスケーリングできません。 さらに、アプリケーションによって動的に構築されたビットマップ内に表示されるグラフィックスとテキストも、この要素ではスケーリングできません。 詳細については、「GDI ベースのデスクトップ アプリでの高 DPI エクスペリエンスの向上」を参照してください。

SetThreadDpiAwarenessContext を呼び出すか、DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED 値を持つ SetProcessDpiAwarenessContext関数をすることにより、プログラムによってこの設定を変更できます。

TRUE は、この要素が有効になっていることを示します。 属性はありません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
      <gdiScaling>true</gdiScaling>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

highResolutionScrollingAware

高解像度スクロール対応を有効にするかどうかを指定します。 TRUE は有効であることを示します。 属性はありません。

longPathAware

長さが MAX_PATH を超える長いパスを有効にします。 この要素は、Windows 10 バージョン 1607 以降でサポートされています。 詳細については、この記事 参照してください。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <ws2:longPathAware>true</ws2:longPathAware>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

printerDriverIsolation

プリンター ドライバーの分離を有効にするかどうかを指定します。 TRUE は有効であることを示します。 属性はありません。 プリンター ドライバーの分離により、印刷スプーラーが実行されるプロセスとは別のプロセスでプリンター ドライバーを実行できるようにすることで、Windows 印刷サービスの信頼性が向上します。 Windows 7 および Windows Server 2008 R2 でプリンター ドライバーの分離のサポートが開始されました。 アプリは、プリンター ドライバーの分離をアプリ マニフェストで宣言して、プリンター ドライバーから自分自身を分離し、信頼性を向上させることができます。 つまり、プリンター ドライバーにエラーがある場合、アプリはクラッシュしません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
      <printerDriverIsolation>true</printerDriverIsolation>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

ultraHighResolutionScrollingAware

超高解像度スクロール対応が有効かどうかを指定します。 TRUE は有効であることを示します。 属性はありません。

msix

現在のアプリケーションの外部の場所を持つパッケージの ID 情報を指定します (「外部の場所パッケージ化してパッケージ ID を付与する」を参照してください)。 この要素は、Windows 10 バージョン 2004 以降のバージョンでサポートされています。

msix 要素は、名前空間 urn:schemas-microsoft-com:msix.v1内にある必要があります。 次の表に示す属性があります。

属性 形容
パブリッシャー 発行元情報について説明します。 この値は、パッケージ アプリのパッケージ マニフェスト内の Identity 要素の Publisher 属性と外部の場所と一致する必要があります。
packageName パッケージの内容について説明します。 この値は、パッケージ アプリのパッケージ マニフェストの Identity 要素の Name 属性と外部の場所と一致する必要があります。
applicationId する アプリケーションの一意識別子。 この値は、パッケージ アプリのパッケージ マニフェスト内の Application 要素の ID 属性と外部の場所と一致する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="Contoso.PhotoStoreApp"/>
  <msix xmlns="urn:schemas-microsoft-com:msix.v1"
          publisher="CN=Contoso"
          packageName="ContosoPhotoStore"
          applicationId="ContosoPhotoStore"
        />
</assembly>

heapType

使用 Win32 ヒープ API の既定のヒープ実装をオーバーライドします。

  • SegmentHeap 値は、セグメント ヒープが使用されることを示します。 セグメント ヒープは、一般的に全体的なメモリ使用量を削減する最新のヒープ実装です。 この要素は、Windows 10 バージョン 2004 (ビルド 19041) 以降でサポートされています。
  • その他の値はすべて無視されます。

この要素には属性がありません。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">
      <heapType>SegmentHeap</heapType>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

supportedArchitectures

IL 専用の .NET Framework 実行可能ファイルの場合、アプリケーションが互換性のあるネイティブ プロセッサ アーキテクチャの一覧を指定します。 次の 1 つ以上の値をスペースで区切って含めることができます。

  • amd64 する
  • arm64 する

この要素には属性がありません。

この要素は、Windows 11 バージョン 24H2 以降でサポートされています。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 ...
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2024/WindowsSettings">
      <supportedArchitectures>amd64 arm64</supportedArchitectures>
    </asmv3:windowsSettings>
  </asmv3:application>
 ...
</assembly>

trustInfo

UAC 準拠のすべてのアプリには、要求された実行レベルがアプリケーション マニフェストに追加されている必要があります。 要求された実行レベルでは、アプリに必要な特権を指定します。 詳細については、「ユーザー アカウント制御 (UAC) がアプリケーションに与える影響」を参照してください。

要求された実行レベルは、trustInfo 要素の子孫 requestedExecutionLevel の レベル 属性で指定されます。 レベルの に使用できる値は次のとおりです。

価値 形容
asInvoker する アプリケーションは、アプリケーションを開始したプロセスと同じアクセス許可レベルで実行されます。 [管理者として実行] を選択すると、アプリケーションをより高いアクセス許可レベル昇格できます。
requireAdministrator する アプリケーションは管理者のアクセス許可を使用して実行されます。 アプリケーションを起動するユーザーは、Administrators グループのメンバーである必要があります。 開くプロセスが管理アクセス許可で実行されていない場合、システムは資格情報の入力を求めます。
highestAvailable する アプリケーションは、可能な最高のアクセス許可レベルで実行されます。 アプリケーションを起動するユーザーが Administrators グループのメンバーである場合、このオプションは level="requireAdministrator"と同じです。 使用可能な最高レベルのアクセス許可レベルが開始プロセスのレベルより高い場合、システムは資格情報の入力を求めます。

レベルを highestAvailable に設定すると、Administrators グループのメンバーであるユーザーとそうでないユーザーの両方でアプリケーションが正常に実行されるようになります。 アプリケーションがシステムへの管理アクセスでのみ機能できる場合は、要求された実行レベルの requireAdministrator でアプリをマークすることで、システムがこのプログラムを管理アプリとして識別し、必要な昇格手順を実行します。

既定では、Visual C++ リンカーは、asInvokerの実行レベルを持つアプリケーションのマニフェストに UAC フラグメントを埋め込みます。

requestedExecutionLevel 要素には、uiAccess 省略可能な属性もあります。 アプリケーションでユーザー インターフェイス保護レベルをバイパスし、デスクトップ上の高いアクセス許可ウィンドウへの入力を駆動する場合は、この値を true に設定します。 この属性は、ユーザー インターフェイス アクセシビリティ アプリケーションの場合にのみ true に設定します。 既定値は falseです。 セキュリティ ポリシー設定からの追加の制限が適用される場合があります。「ユーザー アカウント制御 :セキュリティで保護された場所にインストールされている UIAccess アプリケーションのみを昇格。 詳細については、「支援技術 セキュリティに関する考慮事項」を参照してください。

要求 ExecutionLevel ノードを指定すると、ファイルとレジストリの仮想化が無効になります。 下位互換性のためにファイルとレジストリの仮想化を使用する場合は、要求された ExecutionLevel ノードを省略します。

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
      <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    </requestedPrivileges>
  </security>
</trustInfo>

MySampleApp.exeという名前のアプリケーションのアプリケーション マニフェストの例を次に示します。 アプリケーションは、SampleAssembly のサイド バイ サイド アセンブリを使用します。

<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity type="win32" name="MyOrganization.MyDivision.MySampleApp" version="6.0.0.0" processorArchitecture="*" />
   <dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32" name="Proseware.Research.SampleAssembly" version="6.0.0.0" processorArchitecture="*" publicKeyToken="0000000000000000" />
      </dependentAssembly>
   </dependency>
   <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
      <application>
         <!-- Windows 10 and Windows 11 -->
         <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
         <!-- Windows 8.1 -->
         <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
         <!-- Windows 8 -->
         <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
         <!-- Windows 7 -->
         <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
         <!-- Windows Vista -->
         <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
      </application>
   </compatibility>
</assembly>