如何获取对 MSBuild 的调用路径?
How can I get the path of the call to MSBuild?
是否可以访问(在构建文件中)调用 MSBuild.exe 的目录?
我只能获取构建文件本身的路径。我想要从中调用 MSBuild 的目录。
预计
D:\> msbuild foo\foo.proj
...
MSBuild was called from: D:\>
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<Message Text="MSBuild was called from: ???" />
</Target>
</Project>
为什么
我想知道是否可以替换
中的绝对路径
D:\workdir> msbuild foo\foo.proj /p:Parameter=d:\workdir\Projects\bar\
有相对路径
D:\workdir> msbuild foo\foo.proj /p:Parameter=Projects\bar\
见MSBuild Reserved and Well-Known Properties
看起来 MSBuildStartupDirectory
可以帮助您:
TestBuild.vcxproj 片段
<Target Name="BeforeBuild">
<Message Text="MSBuild was called from: $(MSBuildStartupDirectory)" />
</Target>
建造
d:\Data\Visual Studio 2013\Projects>msbuild /m .\TestMsBuild\TestMsBuild\TestMsBuild.vcxproj /verbosity:detailed /t:BeforeBuild
Task "Message"
MSBuild was called from: d:\Data\Visual Studio 2013\Projects
是否可以访问(在构建文件中)调用 MSBuild.exe 的目录?
我只能获取构建文件本身的路径。我想要从中调用 MSBuild 的目录。
预计
D:\> msbuild foo\foo.proj
...
MSBuild was called from: D:\>
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<Message Text="MSBuild was called from: ???" />
</Target>
</Project>
为什么
我想知道是否可以替换
中的绝对路径D:\workdir> msbuild foo\foo.proj /p:Parameter=d:\workdir\Projects\bar\
有相对路径
D:\workdir> msbuild foo\foo.proj /p:Parameter=Projects\bar\
见MSBuild Reserved and Well-Known Properties
看起来 MSBuildStartupDirectory
可以帮助您:
TestBuild.vcxproj 片段
<Target Name="BeforeBuild">
<Message Text="MSBuild was called from: $(MSBuildStartupDirectory)" />
</Target>
建造
d:\Data\Visual Studio 2013\Projects>msbuild /m .\TestMsBuild\TestMsBuild\TestMsBuild.vcxproj /verbosity:detailed /t:BeforeBuild
Task "Message"
MSBuild was called from: d:\Data\Visual Studio 2013\Projects