2017-06-06 3 views
0

すべてのC++プロジェクトで使用するインクルードパスを含むプロパティファイルを作成しようとしています。ビジュアルスタジオの小道具ファイルに関連するパスを含める

ここにリポジトリ構造があります。

/ 
    /Libs 
     /Libs2 
      A.h 
     B.h 
    /Sln1 
     Sln1.sln 
     Proj1.vcxproj 
    Sln2.sln 
    Proj2.vcxproj 
    Props.props 

は、私が(:;:\\ Libsの\ Libs2 C \\ LibsのC)両方のプロジェクトへのパスを含める以下を追加するには、プロパティファイル(Props.props)を使用します。

Name   Value 
ProjRoot  C:\<path to rep root> 

、文字列が含まに私はそれを使用します:

現在、私は私のプロパティファイルでマクロを持っている$(ProjRoot)\ Libsの; $(ProjRoot)\ Libsの\ Libs2

問題としこの解決策は、マクロ値の絶対パスがハードコードされています。私のリポジトリが別のドライブに複製される場合は、手動で変更する必要があります。

マクロ値のプロパティファイルに対する相対パスを使用できますか?

すなわち:./このプロパティファイルを使用するすべてのプロジェクトでProps.propsファイルのパスに解決されます

Name   Value 
ProjRoot  ./ 

$(SolutionDir)と$(ProjectDir)を使用することはできません。異なるネストレベルのソリューションとプロジェクトがあり、パスが相対パスでは機能しないためです。

ありがとうございます。

答えて

0

は手動で小道具のファイルを編集する必要があり、このいずれかを実行していますし、次のものがあります。

<PropSheetPath>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</PropSheetPath> 

これは、プロパティファイルフォルダを持つプロパティPropSheetPathを作成します。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/2817cae7-3a71-4701-839a-9bf47af7c498/property-sheets-macro-to-reference-location-of-property-sheet?forum=vcgeneral

:ここで答えを見つけることが