2010-06-02 4 views
5

J'ai un script msbuild master.proj qui construit plusieurs projets en utilisant la tâche MSBuild.Comment passer correctement les propriétés msbuild à un autre script msbuild?

Voici un exemple typique:

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

Mais, mon problème est que si plusieurs propriétés sont données sur la ligne de commande, ils ne sont pas transmis à la tâche MSBuild.

Existe-t-il un moyen de transmettre à la tâche MSBuild toutes les propriétés indiquées sur la ligne de commande?

Merci.

+0

j'ai posé une [question] similaire (http://stackoverflow.com/questions/3260913/how-to-access-the-msbuild-command-line- paramètres-de-dans-le-projet-fichier-b) - jamais trouvé une solution à ce problème, qui semble être une lacune grave dans msbuild, IMO. – arathorn

Répondre

3

Vous devez transmettre explicitement votre propriété supplémentaire en tant que liste délimitée par des points-virgules des paires nom/valeur de propriété dans l'attribut Properties. Il est pas joli mais il est le chemin à parcourir:

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

Ce n'est pas une question de jolie. C'est simplement impossible. Master.proj est utilisé pour construire de nombreux projets à la fois. Il ne peut simplement pas savoir quelles propriétés sont pertinentes pour quels projets. – mark

Questions connexes