mark
mark

Reputation: 62746

How to pass msbuild properties to another msbuild script correctly?

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.

Upvotes: 5

Views: 1371

Answers (1)

Julien Hoarau
Julien Hoarau

Reputation: 49970

You have to 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>

Upvotes: 3

Related Questions