tags:

views:

59

answers:

1

Dear ladies and sirs.

I have a master.proj msbuild script which builds several projects using the MSBuild task.

Here is a typical example:

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

But, my problem is that if more properties are given on the command line, they are not passed to the MSBuild task.

Is there a way to pass the MSBuild task all the properties given on the command line?

Thanks.

A: 

You have to pass explicitly pass your extra property as a semicolon-delimited list of property name/value pairs in Properties attribute. It's not pretty but it's the way to go :

<Target Name="Log4PostSharp" DependsOnTargets="log4net">
  <MSBuild Projects="Log4PostSharp\Log4PostSharp.sln" 
           Properties="Configuration=$(Configuration);
                       Platform=$(Platform);
                       OtherPropertyPassInCommandLine=$(PropertyValue)" />
</Target>
madgnome
This is not a question of pretty. It is simply impossible. Master.proj is used to build many projects at once. It just cannot know which properties are relevant to which projects.
mark