2017-06-13 2 views
1

Ich versuche, ein Tool zu erstellen, das Skript nach dem Erstellen des Zielprojekts ausführen muss. Um dies zu tun, habe ich in meinem Tool auch MSBuild Task erstellt.Lesen Sie Build-Parameter in MSBuild Aufgabe

Mein Problem ist, dass ich wissen muss, was die Variablen ConfigurationName und TargetPath in meinen Aufgaben sind.

public class MyTask : Task 
{ 
    public override bool Execute() 
    { 
     var output = // TargetPath variable 
     var configuration = // ConfigurationName variable 
     RunScript(output, configuration); 
     return true; 
    } 
} 

Wie kann ich Build-Variablen in MSBuild Task lesen?

Antwort

1

Die robuste Art und Weise, dies zu tun, ist einfach solche Eigenschaften in Ihre Aufgabe als seine eigenen Eigenschaften weitergeben müssen:

public class MyTask : Task 
{ 
    [Required] 
    public string ConfigurationName { get; set; } 
    [Required] 
    public string TargetPath { get; set; } 

    public override bool Execute() 
    { 
     var output = this.TargetPath; // TargetPath variable 
     var configuration = this.ConfigurationName; // ConfigurationName variable 
     RunScript(output, configuration); 
     return true; 
    } 
} 

Sie sie als „erforderlich“ erklären kann ([Required] Attribute siehe oben), oder nicht. Abhängig von Ihren Bedürfnissen.

Dann setzen sie entsprechend von den .targets oder * proj-Datei:.

<MyTask 
    Configuration="$(Configuration)" 
    TargetPath="$(... whatever ...)" 
/> 
Verwandte Themen