Visual Studio 2008 beta1 Petit-Review vol.3: マニフェストとUAC
こんにちは、Visual Studio 2008 a.k.a. Codename "Orcas" Beta1 でのプチ・レビュー 第三弾です。
今回は、新しく追加された「項目」 アプリケーションマニフェスト(Application Manifest File)を見ていきたいと思います。
プロジェクトに新しい項目の追加(Add: New Item)を行うと VS2008 から Application Manifest File を選択することができます(デフォルトのファイル名は 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="https://www.w3.org/2001/XMLSchema-instance">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following .
<requestedExecutionLevel level="asInvoker" />
<requestedExecutionLevel level="requireAdministrator" />
<requestedExecutionLevel level="highestAvailable" />
-->
<requestedExecutionLevel level="asInvoker" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
という記述があります。
コメントアウトしてあるところに注目していただきたいのですが、UACの設定について書かれています。
「UAC レベルを変更したければ、requestedExecutionLevel でね!」といったところですね。
デフォルトでは、 level="asInvoker" にセットされています。この状態で、アプリケーションをビルドして、さらに実行すると普通に実行できます。
次に、level="requireAdministrator" にセットしてみます。この状態で、ビルドします。まず、EXE のアイコンを見てみましょう:
シールドアイコンが表示されました!当然実行すると UAC の例の画面となります。
ちなみに、3つのlevel ですが、非常にいい加減に書くと、
-
asInvoker: 普通の権限で実行 -
highestAvailable: 実行ユーザの最高の権限で実行 -
RequireAdministrator: 管理者権限で実行
といった感じです。
今までだと、マニフェストファイル書いて、埋め込んで・・・と結構手間がかかりましたが、VS2008では、かなり簡単になっていると感じます。
ちなみに、マニフェストファイルの埋め込みもプロジェクトのプロパティにて簡単に設定することができます。
このように、VS2008 では、開発生産性向上(手間や手動でのミス誘発原因を排除といったものなど)のための改善や機能拡張がなされています。
大きなトピックになるものは、いろいろな人が取り上げていますので、小さなものを取り上げていきたいと思います。
同じものを取り上げている人がいました↓
https://blogs.msdn.com/knom/archive/2007/06/12/uac-with-net-in-visual-studio-2008.aspx
※ このプチ・レビューは、Visual Studio 2008 Beta1 の時点で取り上げています。 ご了承ください。
ながさわ