2010-06-02 5 views
5

Ich habe ein Skript master.proj msbuild, das mehrere Projekte mit der Aufgabe MSBuild erstellt.Wie übergebe ich msbuild-Eigenschaften korrekt an ein anderes msbuild-Skript?

Hier ist ein typisches Beispiel:

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

Aber mein Problem ist, dass, wenn mehr Objekte auf der Kommandozeile angegeben werden, werden sie nicht auf die MSBuild-Aufgabe übergeben.

Gibt es eine Möglichkeit, den MSBuild-Task alle Eigenschaften übergeben, die auf der Befehlszeile angegeben sind?

Danke.

+0

ich ein ähnliches [Frage] Fragen (http://stackoverflow.com/questions/3260913/how-to-access-the-msbuild-command-line- Parameter-von-innerhalb der Projekt-Datei-b) - hat nie eine Lösung gefunden, die ein ernsthafter Mangel in Msbuild, IMO zu sein scheint. – arathorn

Antwort

3

Sie müssen Ihre zusätzliche Eigenschaft explizit als durch Semikolon getrennte Liste von Eigenschaft Name/Wert-Paaren in Properties Attribut übergeben. Es ist nicht schön, aber es ist der Weg zu gehen:

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

Das ist keine Frage von hübsch. Es ist einfach unmöglich. Master.proj wird verwendet, um viele Projekte gleichzeitig zu erstellen. Es kann einfach nicht wissen, welche Eigenschaften für welche Projekte relevant sind. – mark

Verwandte Themen