トップ回答者
VS2017をインストールしたパス名の取得。環境変数やレジストリにも見当たらない。VS2015ではあったのですが・・・

質問
-
皆様、よろしくお願いします。
VS2017のインストールされているパス名を取得したいと思っています。
VS2015では、下記の通り、環境変数、レジストリで取得できていました。VS2013でも同様でした。
・環境変数
VS140COMNTOOLS=C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\
・レジストリ
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0Exp_Config\InstallDir
C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\
ただ、VS2017になってからはどこを探しても、見当たりません。
どこを見れば、VS2017のパス名を取得できるのでしょうか?
Tools/IDEなどの、末端のパス名は、多少違っていても良いと考えています。下記の通りの、VS2017のパス名を取得したいと思っております。
C:\Program Files\Microsoft Visual Studio\2017\Professional\Common7\IDE
回答
-
インストーラーの変更とディレクトリ構成の変更により、環境変数は提供されなくなりました。
その代わりにvswhereというコマンドが提供されるようになりました。
あとはこれとは別に次のレジストリキーにパスがありました。
- 32bit OSではHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7
- 64bit OSではHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
参考情報に過ぎませんが、Visual Studio 2017 は Community, Professional, Enterprise をすべて共存させることができます。
そうする人はまれでしょうけど、そういった環境の時にどのパスを取得するのか?という疑問はありますね。
(プログラムのショートカットは最初にインストールしたものを指し示していました)- 編集済み AzuleanMVP, Moderator 2017年3月12日 7:04
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
VS2017をインストールしたマシンのどこを探してもvswhereというコマンドがありません。
特定のディレクトリにインストールされていたら鶏と卵では…? ですからvswhereリポジトリのリリースページで配布されています。
これだとCommunity, Professional等のエディションの違いで下位のパス名が変わってくるのです。
どういうことでしょうか? 手元のPCではVS2015とVS2017がインストールされていますが、
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7 14.0 REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\ 15.0 REG_SZ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
となっています。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
灰色背景は「引用文」を表すので、自分のコメントはその外に書くようにしてください。
難しいようなら、無理に引用ブロックを使わず、自分でコピペした文章の文の先頭に > をつけて引用とわかるようにするといった手もあります。さて、vswhere のプロジェクトページで Release で検索すればリリース物のページへのリンクを見つけられると思います。
それを実行すると、複数のエディションが入っていようともきちんとインストールパスがそれぞれ得られるみたいですので、そこから工夫してみてください。
出力例:http://wp.me/p19AcI-81// レジストリは「最初にインストールしたインスタンス」のパスが入っている模様。
- 編集済み AzuleanMVP, Moderator 2017年3月12日 10:21
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
すべての返信
-
インストーラーの変更とディレクトリ構成の変更により、環境変数は提供されなくなりました。
その代わりにvswhereというコマンドが提供されるようになりました。
あとはこれとは別に次のレジストリキーにパスがありました。
- 32bit OSではHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7
- 64bit OSではHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
参考情報に過ぎませんが、Visual Studio 2017 は Community, Professional, Enterprise をすべて共存させることができます。
そうする人はまれでしょうけど、そういった環境の時にどのパスを取得するのか?という疑問はありますね。
(プログラムのショートカットは最初にインストールしたものを指し示していました)- 編集済み AzuleanMVP, Moderator 2017年3月12日 7:04
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
回答、感謝申し上げます。
> その代わりにvswhereというコマンドが提供されるようになりました。
との事ですが、VS2017をインストールしたマシンのどこを探しても
vswhereというコマンドがありません。
これは、コマンドラインで打つものとは違うのでしょうか?
もし、ご存知でしたら教えていただければ幸いです。> あとはこれとは別に次のレジストリキーにパスがありました。
確認させていただきました。
ただ、これだとCommunity, Professional等のエディションの違いで
下位のパス名が変わってくるのです。
あと少しだけに、残念です。 -
VS2017をインストールしたマシンのどこを探してもvswhereというコマンドがありません。
特定のディレクトリにインストールされていたら鶏と卵では…? ですからvswhereリポジトリのリリースページで配布されています。
これだとCommunity, Professional等のエディションの違いで下位のパス名が変わってくるのです。
どういうことでしょうか? 手元のPCではVS2015とVS2017がインストールされていますが、
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7 14.0 REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\ 15.0 REG_SZ C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\
となっています。
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44
-
灰色背景は「引用文」を表すので、自分のコメントはその外に書くようにしてください。
難しいようなら、無理に引用ブロックを使わず、自分でコピペした文章の文の先頭に > をつけて引用とわかるようにするといった手もあります。さて、vswhere のプロジェクトページで Release で検索すればリリース物のページへのリンクを見つけられると思います。
それを実行すると、複数のエディションが入っていようともきちんとインストールパスがそれぞれ得られるみたいですので、そこから工夫してみてください。
出力例:http://wp.me/p19AcI-81// レジストリは「最初にインストールしたインスタンス」のパスが入っている模様。
- 編集済み AzuleanMVP, Moderator 2017年3月12日 10:21
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年3月13日 1:57
- 回答としてマーク VBの技術者 2017年3月14日 11:44