在.sln(VS2015解决方案)文件中使用环境变量来获取相对路径

时间:2016-12-20 15:42:45

标签: visual-studio-2015 environment-variables relative-path solution sln-file

我正在尝试创建一个加载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

正如您所看到的,包含文件夹之间相对移动的环境变量将被完全忽略,但是其他环境变量。变量被添加到字符串OK。

有没有办法在保持相对路径的同时使用环境变量?

(我知道有一种方法可以使用带有绝对路径的subst命令来克服这个问题,但如果有更好的方法,我想避免这种情况。)

0 个答案:

没有答案