MSBuild にはGetDirectoryNameOfFileAbove
プロパティ関数があります。
PowerShell で同じことを達成するにはどうすればよいですか?
インクルードを見つけるためにすべてのエントリポイントスクリプトに貼り付ける必要があるため、コンパクトな構文を使用する必要があります。
この質問の考え方:
- ソース コード管理には大きな解決策があります。その一部の部分は比較的自律的です。
- ルートの下の既知のフォルダーに、共有スクリプトと再利用可能な関数の場所があります。
- プロジェクトには多数のエントリポイント スクリプト (明示的に実行するファイル) が散らばっており、そのすべてに共有スクリプトが含まれています。
- entry-point-script から共有スクリプトを見つける便利な方法は何ですか?
相対パスは のように見えるため、うまく機能しないことが判明しました"../../../../../../scripts/smth"
。
モジュールの登録は、(a) インストールではなく SCC から取得するため、適切なオプションではありません。(b) 通常、異なるディスクの場所に異なるバージョンがすべて同時に存在し、(c) これはモジュールへの過剰な依存関係です。技術的にはローカル情報だけで十分な環境。
これを行うための MSBuild の方法 (v4 以降) は次のとおりです。マーカー ファイル (たとえば、root.here など) をドロップし、そのフォルダーへの絶対パスを取得しますGetDirectoryNameOfFileAbove
。パスを構築するためのローカル ルートを取得しました。
多分それはpowershellを使う正しい方法ではないので、そのような指示にも感謝します.