【トラブル】【VisualStudio】VS上でダイアログ「このアプリケーションのサイド バイサイド構成が正しくないため、・・・」が表示

■ 現象

マニフェストファイルに<requestedExecutionLevel>タグを追記した後に、
VS上でビルドしたソースを実行すると、以下のダイアログが表示される。

ダイアログ

操作できませんでした。このアプリケーションのサイド バイサイド構成が正しくないため、
アプリケーションが開始できませんでした。詳細については、アプリケーションのイベントログを
参照するか、コマンドラインツール sxstrace.exe を使用して下さい。

で、素直に、イベントログを見たら、以下のメッセージが表示される。

イベントログ

"XXXX.vshost.exe.Manifest" のアクティブかコンテキストの生成に失敗しました。
マニフェストまたはポリシーファイル "XXXX.vshost.exe.Manifest" 行 XX のエラーです。
マニフェストで複数の requestedPrivileges 要素を使用することはできません。

■ 発生環境

 * OS : Win7(XPでは発生しない)
 * VS : VS2008 Professional

■ 原因

<requestedExecutionLevel>タグを複数書いていたため。
(以下の「マニフェストファイル / app.manifest」を参照のこと)

■ 解決方法

<requestedExecutionLevel>タグを複数書いていたため。

マニフェストファイル / app.manifest

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="">http://www.w3.org/2001/XMLSchema-instance">
  <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="requireAdministrator" uiAccess="false" /><!-- ★追記したタグ★ -->
        <!-- UAC マニフェスト オプション
            Windows のユーザー アカウント制御のレベルを変更するには、
            requestedExecutionLevel ノードを以下のいずれかで置換します。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            requestedExecutionLevel ノードを指定すると、ファイルおよびレジストリの仮想化は無効になります。
            旧バージョンとの互換性のためにファイルおよびレジストリの仮想化を
            使用する場合は、requestedExecutionLevel ノードを削除します。
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" /><!-- ★ここにも書いてある(ここを削除する必要がある)★ -->
      </requestedPrivileges>
    </security>
・・・以下、略・・・