Edited at

gitでVisual Studioのプロジェクトファイルを共有する

More than 3 years have passed since last update.

プロパティーシートの紹介記事。

Visual Studioにおいて、プロジェクトファイル(拡張子.vcxproj)は、makefileのようなもので、何をコンパイルしどのようにリンクするか、といった情報が書かれている。

ただ、外部のライブラリを用いて開発するときなど、他のディレクトリに対する絶対パスをこのプロジェクトファイルに書きたいときには、このプロジェクトファイルをそのままGitで共有する訳にはいかない(全員が同じパスにライブラリを置くなら別だが)。

昔のVisualStudioでは、VisualStudioで扱う全てのプロジェクト共通のインクルードパス設定があり、それを使えばよかったのだが、現在は推奨されず設定画面がない。

今では何を使うべきか調べたところ、「ユーザープロパティシート」なるものを使えば良いことが分かった。

全員で共有すべき情報(例:コンパイルすべきファイルの指定)はプロジェクトファイルに残し、ユーザー依存の情報だけをプロパティーシートに追い出す。

プロパティシートをプロジェクトファイルから参照するように設定した状態でプロジェクトファイル自体はgitで共有、プロパティシートはその雛形をgit以外の方法で共有し、各自プロジェクトのフォルダに突っ込んだ後、各自の環境に合わせて書き換えてもらう。

こうすることで前述の目的は達成できる。

実際の手順に関しては検索すれば見つかるので簡潔に紹介するに留める。

以下で紹介するのはVisual Studio 2013のものである。ある程度新しいものなら同様であろうが、詳しくは知らない。


  • [表示]>[その他のウインドウ]から[プロパティマネージャ]を選び、プロパティマネージャを表示させる。

  • プロパティマネージャの[Debug | Win32]などのフォルダを右クリックし、[新しいプロパティシートの追加]を選び、適当なファイル名を付けて追加する。

  • 新しく出来たプロパティシートをダブルクリックで開き、プロジェクトに対して設定するのと同じように、必要なユーザー依存の情報を記述していく。


    • この際、「ユーザーマクロ」という環境変数のような機能を用いると、各自が何を指定すれば良いのか分かりやすくなる。

    • ユーザーマクロを追加する際には「ビルド環境でこのマクロを環境変数に設定します」にチェックを入れる。



  • プロパティシートの中ではデバッグ用/リリース用といった切り替えは出来ない。デバッグ用/リリース用/共用の3種分のプロパティシートを作るなどすればよい。