Visual Studio 2010 C++ の “VC++ ディレクトリ” 設定はどこへ?

きっと誰もがハマるであろうと思うので、書いておきます。ワタシもハマりました。
多くの方がきっとブログのネタにしているでしょう。

これです。ディクレトリの設定がない…どこへ行ってしまったのでしょう。
ヘルプ見てもいまいちわからないですよね。で、調べました。

VS2010 からは、個別のプロジェクト単位で、ディレクトリ設定を行うように変更になったとのこと。

確かに、プロジェクトのプロパティにはあります。

でも、共通のテンプレートを使おうと思ったり、別のフレームワーク用のテンプレートを使おうと思ったら
いちいち、個別プロジェクトで設定していられないです。それに面倒。
ワタシの大好きな WTL もその一つです。

では、どうするのかというと、この部分がファイルに分離されているので、ファイルに記述することに
なるんだそうだ。

  • ファイルの場所
    C:\Users\<ユーザー名>\Local Settings\Application Data\Microsoft\MSBuild\v4.0
    上記フォルダーは OS によって、フォルダーは以下の場所(実際の場所)にリダイレクトされます。
    C:\Users\<ユーザー名>\AppData\Local\Microsoft\MSBuild\v4.0
  • ファイル名
    Microsoft.Cpp.Win32.user.props
    Microsoft.Cpp.x64.user.props

これらのファイルをテキストエディタで開きます。

こんな内容になっていると思います。ん?XML タグで書けってことですか。

名前 XML タグ名
実行可能ファイル ディレクトリ <ExecutablePath></ExecutablePath>
インクルード ディレクトリ <IncludePath></IncludePath>
参照ディレクトリ <ReferencePath></ReferencePath>
ライブラリ ディレクトリ <LibraryPath></LibraryPath>
ソース ディレクトリ <SourcePath></SourcePath>
ディレクトリの除外 <ExcludePath></ExcludePath>

これらの親は、<PropertyGroup> になります。まず、何も無い状態、いわゆるデフォルト状態にしてみます。

ここまで書くと、追加も楽になります。WTL のヘッダーパスを追加します。

これで完了です。

Visual Studio 2010 を再起動してから、プロジェクトのプロパティから「VC++ ディレクトリ」を見ると、
追加したパスが初期状態で入っているはずです。
もうじきリリースされる SDK v7.1 をインストールしたら、同じようにディレクトリやライブラリの設定を
行うことになりますね。
しかし、この上なく、使いにくいと思います。何で、こんな DCR(DesignChangeRequest)が通ったんだろうか。

5 Responses to Visual Studio 2010 C++ の “VC++ ディレクトリ” 設定はどこへ?

  1. wsp より:

    見事にはまっていました。おかげで助かりました。ありがとうございます。本当になんでこんなに使いにくくなってしまったんでしょうか。
    xmlにするのはいいですが、せめてもっと簡単に編集できるようにしてほしかったです。

    • とうがらし より:

      お役に立てて何よりです。
      こちらこそ、ブログ見ていただきありがとうございました。
      .NET系のIDE機能ばかり進んでしまい、C++が置いていかれているように感じるのが残念です。

  2. kogawa3 より:

    助かりました。ありがとうございます。

  3. ピンバック: VisualStudio2012インストールメモ | Nana's Factory

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。