【问题标题】:How to pass msbuild properties to another msbuild script correctly?如何正确地将 msbuild 属性传递给另一个 msbuild 脚本?
【发布时间】:2011-02-26 16:55:09
【问题描述】:

我有一个 master.proj msbuild 脚本,它使用 MSBuild 任务构建多个项目。

这是一个典型的例子:

<Target Name="Log4PostSharp" DependsOnTargets="log4net">
  <MSBuild Projects="Log4PostSharp\Log4PostSharp.sln" Properties="Configuration=$(Configuration)" />
</Target>

但是,我的问题是,如果在命令行上提供了更多属性,它们不会传递给 MSBuild 任务。

有没有办法将命令行中给出的所有属性传递给 MSBuild 任务?

谢谢。

【问题讨论】:

  • 我问了一个类似的question——从来没有找到解决这个问题的方法,这似乎是 IMO 的 msbuild 的一个严重缺陷。

标签: msbuild


【解决方案1】:

您必须在Properties 属性中以以分号分隔的属性名称/值对列表 的形式显式传递您的额外属性。这不漂亮,但这是要走的路:

<Target Name="Log4PostSharp" DependsOnTargets="log4net">
  <MSBuild Projects="Log4PostSharp\Log4PostSharp.sln" 
           Properties="Configuration=$(Configuration);
                       Platform=$(Platform);
                       OtherPropertyPassInCommandLine=$(PropertyValue)" />
</Target>

【讨论】:

  • 这不是漂亮的问题。这简直是​​不可能的。 Master.proj 用于一次构建多个项目。它只是无法知道哪些属性与哪些项目相关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2012-10-02
相关资源
最近更新 更多