2010-06-02 29 views
5

我有一个master.proj msbuild脚本,它使用MSBuild任务来构建几个项目。如何正确地将msbuild属性传递给另一个msbuild脚本?

下面是一个典型的例子:

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

不过,我的问题是,如果有更多的属性在命令行上给出的,它们不传递到MSBuild任务。

有没有办法让命令行上给出的所有属性都通过MSBuild任务?

谢谢。

+0

我问过类似的[问题](http://stackoverflow.com/questions/3260913/how-to-access-the-msbuild-command-line-参数从项目内文件b) - 从来没有找到一个解决方案,这似乎是msbuild,国际海事组织的严重缺陷。 – arathorn 2012-04-12 22:32:49

回答

3

您必须明确地将您的额外属性作为以分号分隔的属性名称/值对列表中的Properties属性的分号分隔列表。它不漂亮,但它要走的路:

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

这不是一个漂亮的问题。这根本不可能。 Master.proj用于一次构建多个项目。它只是不知道哪些属性与哪些项目相关。 – mark 2010-06-02 08:12:09

相关问题