-win32manifest (C# コンパイラ オプション)-win32manifest (C# Compiler Options)

-win32manifest オプションは、プロジェクトのポータブル実行可能 (PE) ファイルに埋め込まれる、ユーザー定義の Win32 アプリケーション マニフェスト ファイルを指定するために使用します。Use the -win32manifest option to specify a user-defined Win32 application manifest file to be embedded into a project's portable executable (PE) file.


-win32manifest: filename  


カスタム マニフェスト ファイルの名前と場所。The name and location of the custom manifest file.


既定では、Visual C# コンパイラは "asInvoker" の要求実行レベルを指定するアプリケーション マニフェストを埋め込みます。By default, the Visual C# compiler embeds an application manifest that specifies a requested execution level of "asInvoker." マニフェストは、実行可能ファイルがビルドされたフォルダーと同じフォルダーに作成されます (Visual Studio を使用している場合、通常は bin\Debug または bin\Release フォルダー)。It creates the manifest in the same folder in which the executable is built, typically the bin\Debug or bin\Release folder when you use Visual Studio. カスタム マニフェストを指定する場合 (たとえば、"highestAvailable" または "requireAdministrator" の要求実行レベルを指定する場合) は、このオプションを使用してファイルの名前を指定します。If you want to supply a custom manifest, for example to specify a requested execution level of "highestAvailable" or "requireAdministrator," use this option to specify the name of the file.


このオプションと -win32res (C# コンパイラ オプション) オプションは、相互に排他的です。This option and the -win32res (C# Compiler Options) option are mutually exclusive. 同じコマンド行で両方のオプションを使おうすると、ビルド エラーが返されます。If you try to use both options in the same command line you will get a build error.

アプリケーション マニフェストを持たないアプリケーションは、要求実行レベルを指定した場合、Windows のユーザー アカウント制御機能によって、ファイルまたはレジストリの仮想化の対象となります。An application that has no application manifest that specifies a requested execution level will be subject to file/registry virtualization under the User Account Control feature in Windows. 詳細については、「ユーザー アカウント制御」を参照してください。For more information, see User Account Control.

次の条件のいずれかに該当する場合、アプリケーションは仮想化の対象となります。Your application will be subject to virtualization if either of these conditions is true:

  • -nowin32manifest オプションを使用していて、後のビルド手順でマニフェストを提供していないか、-win32res オプションを使用して Windows リソース (.res) ファイルの一部としていない。You use the -nowin32manifest option and you do not provide a manifest in a later build step or as part of a Windows Resource (.res) file by using the -win32res option.

  • 要求実行レベルが指定されていないカスタム マニフェストを提供している。You provide a custom manifest that does not specify a requested execution level.

Visual Studio は、既定の .manifest ファイルを作成し、それを実行可能ファイルと一緒にデバッグ ディレクトリとリリース ディレクトリに保存します。Visual Studio creates a default .manifest file and stores it in the debug and release directories alongside the executable file. カスタム マニフェストを追加するには、任意のテキスト エディターでカスタム マニフェストを作成し、そのファイルをプロジェクトに追加します。You can add a custom manifest by creating one in any text editor and then adding the file to the project. または、ソリューション エクスプ ローラー[プロジェクト] アイコンを右クリックし、[新しい項目の追加] をクリックして、[アプリケーション マニフェスト ファイル] をクリックします。Alternatively, you can right-click the Project icon in Solution Explorer, click Add New Item, and then click Application Manifest File. 新規または既存のマニフェスト ファイルを追加すると、そのマニフェストは [マニフェスト] ドロップダウン リストに表示されます。After you have added your new or existing manifest file, it will appear in the Manifest drop down list. 詳しくは、「[アプリケーション] ページ (プロジェクト デザイナー) (C#)」をご覧ください。For more information, see Application Page, Project Designer (C#).

アプリケーション マニフェストは、カスタムのビルド後手順として提供するか、または -nowin32manifest (C# コンパイラ オプション) オプションを使用して、Win32 リソース ファイルの一部として提供できます。You can provide the application manifest as a custom post-build step or as part of a Win32 resource file by using the -nowin32manifest (C# Compiler Options) option. アプリケーションを Windows Vista でファイルまたはレジストリの仮想化の対象にする場合は、これと同じオプションを使用します。Use that same option if you want your application to be subject to file or registry virtualization on Windows Vista. これにより、コンパイラがポータブル実行可能 (PE) ファイル内に既定のマニフェストを作成し、埋め込むことを回避できます。This will prevent the compiler from creating and embedding a default manifest in the portable executable (PE) file.


次の例は、Visual C# コンパイラが PE に挿入する既定のマニフェストを示したものです。The following example shows the default manifest that the Visual C# compiler inserts into a PE.


コンパイラは、標準のアプリケーション名 "MyApplication.app" を xml に挿入します。The compiler inserts a standard application name " MyApplication.app " into the xml. これは、アプリケーションを Windows Server 2003 Service Pack 3 で実行できるようにするための回避策です。This is a workaround to enable applications to run on Windows Server 2003 Service Pack 3.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  
  <assemblyIdentity version="" name="MyApplication.app"/>  
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">  
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">  
        <requestedExecutionLevel level="asInvoker"/>  

関連項目See also