在我的MSBuild脚本中,我需要将完整目录作为参数传递.我怎么才能拿到?
示例:我从C:\dev开始运行脚本,我想要一个相对路径temp,所以我在C:\dev\temp之后.
注意:我不知道脚本将从哪个文件夹运行.
在我的MSBuild脚本中,我需要将完整目录作为参数传递.我怎么才能拿到?
示例:我从C:\dev开始运行脚本,我想要一个相对路径temp,所以我在C:\dev\temp之后.
注意:我不知道脚本将从哪个文件夹运行.
伊戈尔很接近.MSBuildProjectDirectory
是一个属性,它将为您提供在命令行上调用的项目文件的完整路径.因此,如果您有以下脚本:
MyProj.proj
个导入shared.targets
,这是传递给msbuild的.然后MSBuildProjectDirectory
的值将始终为C:\temp,即使您在shared中引用该值.目标.如果你的分享.目标需要路径知识,然后这些应该在已知属性中声明.例如,C#项目文件定义OutputPath
的值,共享文件Microsoft.Common.targets
使用该属性.
Edit: MSBuild 4个
如果您使用的是MSBuild 4,则还可以将这些属性用于此类值.
见http://sedodream.com/2010/03/11/MSBuild40ReservedProperties.aspx.