【问题标题】:MsBuild: Get current directory of targetsMsBuild:获取目标的当前目录
【发布时间】:2011-04-21 05:27:22
【问题描述】:

我有一个 msbuild 目标,它有一个 Import 标记,如下所示:

<Import Project="$(MSBuildExtensionsPath)\Company\Company.LifeCycle.targets" />

在 Company.LifeCycle.targets 文件的内容中,如何以编程方式获取当前目录(在本例中为:C:\Program Files\MsBuild\Company)??

我使用 VS 2008,.NET 3.5

编辑:我看到了参考,How can I get current directory in msbuild script?,但对我无效:$(MSBuildProjectDirectory 给我这个值,C:\Work\Company\Projects\Test001\ProyectSW3

【问题讨论】:

标签: msbuild path directory msbuild-task targets


【解决方案1】:

使用 MSBuild 4,您可以使用新属性“MSBuildThisFileDirectory”,请参阅我的博客 http://sedodream.com/2010/03/11/MSBuild40ReservedProperties.aspx。如果您不使用 MSBuild 4,则无法轻松做到这一点。

【讨论】:

  • 我使用的是 msbuild 3.5;源代码不可用于获取新属性“MSBuildThisFileDirectory”,例如 MsBuild 社区任务或 codeplex 中的其他扩展??
  • 不,这是对 MSBuild 本身的更新。与其获取路径,不如通过属性传入。
  • @SayedIbrahimHashimi,您的博客并不清楚如何在那里运行示例项目以查看保留的属性。
  • @TolaOdejayi 该帖子在第二个代码 sn-p 中有“msbuild ReservedProps02.proj /m /nologo”。
【解决方案2】:

您的问题已在此处的另一篇文章中得到解答:MsBuild: Get current directory of targets。我希望那里的答案能让你满意。

您几乎可以使用MSBuildProjectDirectory,它将为您提供当前项目文件的路径,您可以在此基础上进行构建。

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 2010-11-18
    • 2016-08-20
    • 2012-01-29
    • 2013-01-29
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多