次の方法で共有


/win32manifest (C# コンパイラ オプション)

/win32manifest オプションを使用して、プロジェクトの移植可能な実行可能 (PE: Portable Executable) ファイルに埋め込むユーザー定義の Win32 アプリケーション マニフェスト ファイルを指定します。

/win32manifest: filename

Arguments

  • filename
    カスタム マニフェスト ファイルの名前と場所。

解説

既定では、"asInvoker" 要求実行レベルを指定するアプリケーション マニフェストが、Visual C# コンパイラによって埋め込まれます。Visual Studio を使用すると、アプリケーション マニフェストは、通常 bin\Debug または bin\Release フォルダーは、実行可能ファイルをビルドするフォルダー内に作成します。 カスタム マニフェストを指定する場合は、「highestAvailable」または「requireAdministrator の要求実行レベルを指定するには」、ファイルの名前を指定するには、このオプションを使用します。

注意

このオプションと /win32res (C# コンパイラ オプション) オプションは相互に排他的です。同じコマンド ライン内で両方のオプションを使用すると、ビルド エラーが発生します。

要求実行レベルを指定するアプリケーション マニフェストのないアプリケーションは、Windows Vista のユーザー アカウント制御機能によってファイルとレジストリが仮想化されます。 仮想化の詳細については、参照します Windows Vista の Developer Story: User Account Control (UAC) の Windows Vista Application Development Requirements

アプリケーションが次のいずれかの条件を満たす場合、アプリケーションは仮想化されます。

  • /nowin32manifest オプションを使用し、それ以降のビルド ステップでマニフェストを指定していないか、/win32res オプションを使用して Windows リソース (.res) ファイルの一部としてマニフェストを指定していない。

  • 要求実行レベルを指定しないカスタム マニフェストを指定している。

Visual Studio は既定の .manifest ファイルを作成し、実行可能ファイルと共に debug ディレクトリおよび release ディレクトリに格納します。 カスタム マニフェストは、任意のテキスト エディターで作成してプロジェクトに追加できます。 または、ソリューション エクスプローラー[プロジェクト] アイコンを右クリックし、[新しい項目の追加] をクリックして、[アプリケーション一覧ファイル] をクリックします。 新しいマニフェスト ファイルまたは既存のマニフェスト ファイルを追加すると、[マニフェスト] ボックスの一覧にそのファイルが表示されます。 詳細については、「[アプリケーション] ページ (プロジェクト デザイナー) (C#)」を参照してください。

アプリケーション マニフェストは、カスタムのビルド後のステップで指定するか、/nowin32manifest (C# コンパイラ オプション) オプションを使用して Win32 リソース ファイルの一部として指定できます。 Windows Vista でアプリケーションのファイルとレジストリを仮想化する場合にも同じオプションを使用します。 これにより、コンパイラで既定のマニフェストが作成され、移植可能な実行可能 (PE) ファイルに埋め込まれるのを防ぐことができます。

使用例

Visual C# コンパイラによって PE に挿入される既定のマニフェストの例を次に示します。

注意

コンパイラは、"MyApplication.app" という名前の通常のアプリケーションを xml に挿入します。これは、アプリケーションを 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="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

参照

処理手順

方法 : プロジェクト プロパティおよび構成設定を変更する

関連項目

/nowin32manifest (C# コンパイラ オプション)

その他の技術情報

C# コンパイラ オプション