私はこのような構造を持っている:マルチレベルのマージ
\
MySolution.sln
Directory.Build.props (1)
\src
Directory.Build.props (2-src)
\Project1
\Project2
\test
Directory.Build.props (2-test)
\Project1Tests
\Project2Tests
私はすべてのプロジェクト(1)のための共通の性質、SRCのプロジェクト(2-SRC)のための共通の性質を持っており、テストプロジェクトの共通プロパティ(2テスト)。
インポート(2-SRC)及び(2検定)について(1)、advice given at the repoによれば、私はそれらのそれぞれに加え:
働かない<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props'))" />
(私はエラーを取得しますインポートが循環依存を引き起こすことに注意してください)。だから私は試しました:
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '../'))" />
同じ理由でうまくいきません。しかし、これは仕事ん:
<Import Project="../Directory.Build.props" />
私は(深いディレクトリ構造をサポート)MSBuildのコマンドではなく、ハードコードされた値を使用することを好みます。それは可能ですか?
*ハードコーディング*ではなく、 'GetPathOfFileAbove'は' ../ 'つまり、どちらの場合でも、「ハードコード」と呼ばれます。ファイルが見つかる場所、つまり1つ上位のディレクトリですか? – stijn
@stijn公平な点、私はそれをよく表現していませんでした(そのテキストを更新しました)。しかし、まだmsbuildコマンドを使用すると、ハードコードされた絶対パスを使用するよりも良いように見えます。より深いディレクトリ構造があると仮定します。コマンドを使用すると動作しますが、ハードコードされた値は失敗します。 – grokky