次の方法で共有


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

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

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

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

要素 属性 必須
集会 はい
manifestVersion はい
noInherit いいえ
assemblyIdentity はい
種類 はい
名前 はい
言語 いいえ
processorArchitecture いいえ
バージョン はい
publicKeyToken いいえ
互換性 いいえ
アプリケーション いいえ
supportedOS いいえ
身分証明書 はい
maxversiontested いいえ
身分証明書 はい
属国 いいえ
dependentAssembly いいえ
ファイル いいえ
名前 はい
hashalg いいえ
ハッシュ いいえ
activatableClass いいえ
名前 はい
threadingModel はい
activeCodePage いいえ
autoElevate いいえ
disableTheming いいえ
disableWindowFiltering いいえ
dpiAware いいえ
dpiAwareness いいえ
gdiScaling いいえ
highResolutionScrollingAware いいえ
longPathAware いいえ
printerDriverIsolation いいえ
ultraHighResolutionScrollingAware いいえ
msix いいえ
heapType いいえ
supportedArchitectures いいえ
consoleAllocationPolicy いいえ
trustInfo いいえ

ファイルの場所

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

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

ファイル名

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

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

.< のexample.exeリソース ID>。積荷目録

.< のexample.dllリソース 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内にある必要があります。 互換性の子要素も、継承またはタグ付けによって、この名前空間に存在する必要があります。

アプリケーション

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

supportedOS

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

属性 形容
身分証明書 Vista 機能を使用してアプリケーションを実行するには、Id 属性を {e2011457-1546-43c5-a5fe-008deee3d3f0} に設定します。 これにより、Windows Vista用に設計されたアプリケーションを、後のオペレーティング システムで実行できるようになります。
id 属性を {35138b9a-5d96-4fbd-8e2d-a2440225f93a} に設定して、Windows 7機能を使用してアプリケーションを実行します。
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 で Resource Monitor (resmon) を実行し、[CPU] タブに移動し、列ラベル "列の選択..." を右クリックします。"、および "オペレーティング システム コンテキスト" を確認します。 Windows 8.x では、この列はタスク マネージャー (taskmgr) でも確認できます。 列の内容には、見つかった最大値または既定値として "Windows Vista" が表示されます。

maxversiontested

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

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

属性 形容
身分証明書 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 の最初のサブ要素は、アプリケーションで必要な side-by-side アセンブリを記述する assemblyIdentity 要素である必要があります。 すべての dependentAssembly は、厳密に 1 つの 依存関係内にある必要があります。 属性はありません。

ファイル

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

file 要素には、次の表に示す属性があります。

属性 形容
名前 ファイルの名前。 たとえば、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 は、値 Legacy またはロケール名 (en-USja-JP に設定することもできます。

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

この要素は、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 要素が存在する場合、dpiAwareness 要素は無視されます。 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 認識設定の詳細については、「High DPI Desktop Application Development on Windows」を参照してください。

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

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

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

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

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

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

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

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>

consoleAllocationPolicy

コンソール アプリケーションは、エクスプローラーなどの起動時にターミナル ウィンドウ (コンソール ホスト) を自動的に生成します。 この要素を detached に設定すると、これを回避できます。 これを使用すると、エクスプローラーから起動したときに純粋な GUI アプリケーションのように動作するアプリケーションを作成し、既存のターミナル セッションから起動したときにターミナル出力を許可することができます。

「コンソール割り当てポリシー」を参照してください。

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

この要素は、Windows 11 24H2 および Windows Server 2025 以降でサポートされています。

<assembly manifestVersion="1.0">
  <application>
    <windowsSettings>
      <consoleAllocationPolicy xmlns="http://schemas.microsoft.com/SMI/2024/WindowsSettings">detached</consoleAllocationPolicy>
    </windowsSettings>
  </application>
</assembly>

trustInfo

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

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

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

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

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

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

requestedExecutionLevel ノードを指定すると、ファイルとレジストリの仮想化が無効になります。 下位互換性のためにファイルとレジストリの仮想化を利用する場合は、 要求された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>