VS2015 ソリューション ファイルを読み込むバッチ ファイルを作成しようとしています。ソース管理ブランチを使用するため、.sln に含まれるプロジェクトへのパスは、次のように選択したブランチによって異なる場合があります: トランク\ ブランチ\B1\ ブランチ\B2\ など...
.sln ファイルでは、含まれるプロジェクトの定義は次のようになります。
Project("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}") = "My.Awesome.Project", "..\..\..\My\Awesome\Project\trunk\HelloWorld\HelloWorld.csproj", "{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
またはこれ:
Project("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}") = "My.Awesome.Project", "..\..\..\..\My\Awesome\Project\branches\B1\HelloWorld\HelloWorld.csproj", "{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
これらの環境変数を使用するというアイデアがありました。
@SET BACKPATH=..\..\..
@SET FORWARDPATH=trunk
Project("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}") = "My.Awesome.Project", "%BACKPATH%\My\Awesome\Project\%FORWARDPATH%\HelloWorld\HelloWorld.csproj", "{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
ソリューションが読み込まれると、これらの環境変数の使用を開始するとすぐに、処理された文字列が絶対パスに切り替わります。したがって、次のようになります。
C:\Team1\Work\My\Awesome\Project\trunk\HelloWorld\HelloWorld.csproj
ご覧のとおり、フォルダー間の相対移動を含む環境変数は完全に無視されますが、他の env. 変数が文字列 OK に追加されます。
相対パスを維持しながら同時に環境変数を使用する方法はありますか?
(絶対パスで subst コマンドを使用してこの問題を克服する方法があることは知っていますが、より良い方法がある場合はそれを避けたいと思います。)