タスクバーから、あるいはソリューションファイルをダブルクリックしたときに、常に管理者権限でVisual Studio 2013を起動する方法を解説する。
Visual StudioのWebアプリプロジェクトやWebサイトプロジェクトでローカルなIISを使用する場合など、Visual Studio 2013のIDEを管理者権限で起動する必要がある。本TIPSでは、常に管理者権限で起動する方法を紹介する。
Windows 8.xでVisual Studio 2013(以下、VS 2013)を管理者権限で起動する方法はいくつかある。スタート画面では、タイルを右クリックしてショートカットメニューから[管理者として実行]を選択する。タスクバーでは、アイコンを右クリックしてジャンプリストを表示し、そこからさらにアプリ名を右クリックして[管理者として実行]を選択すればよい。ただし、後者の方法では、管理者権限でVS 2013を起動して、ジャンプリストに表示されているソリューションを読み込ませることはできない。
右クリックして[管理者として実行]を選択するのではなく、タスクバーのアイコンまたはジャンプリストに表示されたVS 2013のアプリ名をクリックするだけで、あるいは[最近使ったもの]からソリューションファイルをクリックするだけで、さらにWindowsエクスプローラーでソリューションファイルをダブルクリックするだけで、VS 2013を管理者権限で起動できると便利だ。以下ではその手順を説明する。
タスクバーからVS 2013を管理者権限で起動できるようにするには、以下の2種類のファイルに対して設定を行う必要がある。
VS 2013では、ソリューションファイル(.slnファイル)をダブルクリックした際に、直接VS 2013が起動されるわけではない。ソリューションファイルはVSLauncher.exeファイルが処理をし、そこから適切なバージョン/エディションのVSが起動されるようになっている。そのため、VS 2013のプログラムファイル自体に加えて、VSLauncher.exeファイルについても設定を行う必要がある。
さらにExpressエディションではIDEを起動するためのコマンド名が有償版のVS 2013(以下、devenv.exeファイルとする)とは異なっている。
ここではまずそのプロパティダイアログに[互換性]タブがあるものの設定方法を(「for Desktop」など)、次にそのプロパティダイアログに[互換性]タブがないものの設定方法を(devenv.exeファイルなど)を紹介しよう。これらは設定方法が微妙に異なるのだ。なお、いくつかの環境で試してみたが、「for Desktop」と「for Web」ではプロパティダイアログに[互換性]タブがあり、devenv.exeファイルと「for Windows」ではプロパティダイアログに[互換性]タブが表示されなかった(読者の環境ではそうはならないかもしれない)。その後、VSLauncher.exeファイルの設定方法を紹介する。
いずれにしろ、スタート画面(あるいはその左下に[↓]ボタンを押すと表示されるアプリ画面)からタスクバーに、自分が使用しているVS 2013をピン留めしておこう。なお、「devenv.exeファイル」はインターネット検索でもよく見かけるなじみ深いファイル名だが、Expressエディションの個々の実行ファイル名を表記しても分かりにくい。そこで、以下では後者については「for 〜」とだけ表記することにする。
前述の通り、筆者が試した限りは「for Desktop」と「for Web」がこちらに分類される。ここでは「for Desktop」を例とする。タスクバーでアイコンを右クリックし、ジャンプリストで[VS Express 2013 for Desktop]をもう一度右クリックして、ショートカットメニューから[プロパティ]を選択する。プロパティダイアログが表示されたら[互換性]タブで[管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる。
ジャンプリストで[VS Express 2013 for Desktop]を右クリックし、ショートカットメニューの[プロパティ]選択
プロパティダイアログの[互換性]タブで[管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる
「for Desktop」の場合
「for Web」も同様な方法で設定できる。
「for Web」も同様な方法で設定が可能だ。次に、プロパティダイアログに[互換性]タブがない場合だ。
筆者が試したところでは、devenv.exeファイル(有償版のVS 2013)と「for Windows」がこちらだ。ここではdevenv.exeファイルを例とする。プロパティシートを出すまでは[互換性]タブがある場合と同じだが、その後が微妙に異なる。こちらではプロパティダイアログに[互換性]タブがないので[ショートカット]タブにある[詳細設定]ボタンをクリックする。[詳細プロパティ]ダイアログが表示されたら、[管理者として実行]チェックボックスにチェックを入れる。
devenv.exeファイルと「for Windows」では、この後で、レジストリエントリに手作業で設定を行う必要もあるが、これについては後述する。
VSLauncher.exeファイルの設定は、「for Desktop」と同様にプロパティダイアログの[互換性]タブで行える。VS 2013をデフォルト設定でインストールした場合、このファイルは「C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv」ディレクトリにあるので、Windowsエクスプローラーでディレクトリをブラウズして、このファイルを見つけて設定すればよい。が、これが面倒だという場合には、手近にあるソリューションファイルをタスクバーにドラッグ&ドロップしてみよう。これにより、VSLauncher.exeファイルがタスクバーにピン留めされる。
ピン留めをした後は、VS Express 2013 for Windows Desktopと同様な方法で設定を行う。その後、ピン留めは外してしまっても構わない。
以上の設定が終われば、タスクバーでアイコンをクリックするだけで(あるいはジャンプリストでVS 2013のプログラム名をクリックするだけで)、VS 2013が管理者権限で起動される。Windowsエクスプローラーでソリューションファイルをダブルクリックした場合も同様だ。ただし、ジャンプリストで最近使ったソリューションをクリックした場合には、devenv.exeファイルと「for Windows」では管理者権限でVS 2013が起動されない(「for Desktop」と「for Web」は管理者権限で起動される)。
これはどうやら、devenv.exeファイルと「for Windows」では上記の作業だけでは、レジストリに必要なエントリが登録されないからのようだ。
「for Desktop」を例に紹介をした設定を行うと、レジストリの「HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers」キーに「そのプログラムファイルのフルパス」を名前とし、「~ RUNASADMIN」をデータとする文字列値が登録される。このエントリがないと、ジャンプリストで最近使用したソリューションをクリックしても、管理者権限でVS 2013が起動されないようだ。そして、[詳細プロパティ]ダイアログで[管理者として実行]チェックボックスにチェックを入れた場合(devenv.exeファイルと「for Windows」)、これらのエントリが登録されないのである。
そこで、これらを手作業で追加する必要がある。一番簡単なのは、先ほどの要領でタスクバーにピン留めしたアイコンからプロパティダイアログを表示し[ショートカット]タブの[ファイルの場所を開く]ボタンをクリックする方法だ。すると、そのファイルが選択された状態でWindowsエクスプローラーが開くので、[Shift]キーを押しながら、このファイルを右クリックする。ショートカットメニューに[パスのコピー]があるので、これをクリックしよう。
フルパスをコピーしたら、レジストリに文字列値を追加する。このとき、コピーしたフルパスはダブルクォートで囲まれているので、ダブルクォートを削除するのを忘れないようにしよう。そして、その文字列値のデータを「~ RUNASADMIN」にする。
以上の作業を行えば、devenv.exeファイルや「for Windows」でジャンプリストに表示されたソリューションファイルをクリックした場合でも、管理者権限でVS 2013が起動するようになる。実際には、プロパティダイアログに[互換性]タブがない場合は、手作業でレジストリへ文字列値を追加すれば、[詳細プロパティ]ダイアログで[管理者として実行]チェックボックスにチェックを入れる必要はない。逆に、このチェックを外しても、レジストリから文字列値が削除されないことには注意してほしい。
なお、管理者権限が必要な状況についてはMSDNの「ユーザー アクセス許可と Visual Studio」や「管理者権限を持たないユーザーとしての Visual Studio の Web プロジェクトの使用」などを参考にされたい。また、前者のページでも言及されているように、最近では通常のユーザーとしてVS 2013を起動しても大半の作業は可能だ。どうしてもというとき以外は通常のユーザーとしてVS 2013を使用することをお勧めする。
利用可能バージョン:.NET Framework 4.5.x
カテゴリ:Visual Studio 2013 処理対象:IDE
関連TIPS:常に管理者としてアプリケーションを実行させるには?[C#、VB、VS 2008] − @IT
Copyright© Digital Advantage Corp. All Rights Reserved.