4

.vspropsファイルディレクトリに相対的な.vspropsファイルパスを指定する方法はありますか?

たとえば、次のディレクトリ構造があります。

largesolution.sln
a/a.vcproj
b/c/c.vcproj
common/common.vsprops

a.vcprojc.vcprojincludeの両方があり、両方のプロジェクトが含まれているソリューションディレクトリに関係なく、common.vspropsいくつかのマクロを追加するか、フォルダに相対的なincludeディレクトリを設定したいと思います。common.vspropsファイルで使用$(InputDir)してみましたが、このマクロは.vspropsファイルではなく.vcprojを含むディレクトリとして展開されているようです。

Visual C ++ディレクトリで絶対パスを設定したりグローバルインクルードパスを設定したりすることは解決策ではありません。開発者が異なれば、ソースツリールートの場所も異なるためです。相対パスの設定$(SolutionDir)は、メインソースツリーの外側のどこかにいくつかのサブセットobプロジェクト(たとえば、a.vcprojのみ)を含む小さなソリューションがあると便利なため、適切ではありません。

もちろん、include directory ina.vcprojを設定$(ProjectDir)..\commonすると正常に機能しますが、達成される結果は、.vspropsを含め、パスを正しく設定することだけです。

4

1 に答える 1

2

MSBuildThisFileDirectory マクロを使用できます。例: common.props でインクルード ディレクトリを "$(MSBuildThisFileDirectory)\include;$(IncludePath)" に設定します。

詳細については、 http://msdn.microsoft.com/en-us/library/vstudio/ms164309.aspxを参照してください。

MSVS2012 および MSVS2013 でテスト済み。

于 2013-12-19T06:58:09.113 に答える