web-dev-qa-db-ja.com

Visual Studio2010でコンパイル時にマニフェストファイルを埋め込む方法

次のノードを持つマニフェストファイルを持つプロジェクトがあります。

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

...デフォルトで「管理者として」のみ実行することを意味します。

周りを検索して、この作業を行うには、2つのオプションがあります。

  1. それを「埋め込む」。
  2. マニフェストファイルをexeとともにデプロイし、YourProject.exe.manifestという名前を付けます。

オプション2を試しましたが、アプリを実行しても管理者権限は要求されませんか?

では、VS2010でオプション1を実行するにはどうすればよいですか? mt.exeについて聞いたことがありますが、ビルド後に行われるため、これは私には良くありません。ソリューションの一部とプロジェクトファイル自体のオプションが必要です。

では、どうすればこれを機能させることができますか?喜んで2をやりますが、うまくいかないようです。

14
andy

Visual Studio 2010では、新しいプロジェクトのデフォルト設定は、マニフェストをアプリケーションに埋め込むことです(オプション#1)。デフォルトでは、デフォルトのマニフェストが含まれていますが。あなたがする必要があるのは、カスタムマニフェストを追加することです。

  • プロジェクトを右クリックして、「新しいアイテムの追加」を選択します
  • 「アプリケーションマニフェストファイル」を選択します

これにより、app.manifestという名前のファイルがプロジェクトに追加されます。そのファイルを開き、次のように行を変更します

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

これは、Visual Studio2008でも機能するはずです。

21
JaredPar

VS2010では少し異なります。プロジェクトを右クリックして、[プロパティ]を選択します。 「アプリケーション」タブを選択し、「Windows設定の表示」をクリックします。これによりマニフェストが開きます。次に、必要な変更を加えます。

8

既存のapp.manifestを別のプロジェクト(C#)にコピーすることによって引き起こされる同じ問題に遭遇しました。

プロジェクトをアンロードし、csprojファイルを編集して、次のセクションを挿入することで修正しました。

<PropertyGroup>
  <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>

これにより、アプリケーションはapp.manifestを正しく取得できました。

0
Jay