アプリケーション マニフェスト (サイド バイ サイド アプリケーション マニフェストまたは 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 | いいえ | |
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 要素には、次の属性があります。 サブ要素はありません。
<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 用に設計されたアプリケーションを後のオペレーティング システムで実行できます。 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 属性を、アプリケーションがテストされた 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 | インプロセス サーバーのアクティブ化に使用するアパートメント スレッド モデルを表します。 有効な値には、both 、STA 、または 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-US 、 ja-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 要素をサポートするバージョンの場合、dpiAwareness は dpiAware 要素をオーバーライドします。 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_AWARENESS と DPI_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 または 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>
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>