2017-06-13 33 views
1

我试图创建一些需要在目标项目构建完成后运行脚本的工具。 为了做到这一点,在我的工具中,我也创建了MSBuild任务。在MSBuild任务中读取构建参数

我的问题是我需要知道什么是我的任务中的ConfigurationName和TargetPath变量。

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

如何在MSBuild任务中读取构建变量?

回答

1

最稳健的方式做到这一点,是简单地这样的特性 传递到你的任务作为自己的属性:

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; 
    } 
} 

你可以声明为“需要”(见上文[Required]属性),或不。取决于你的需求。

然后从.targets或将它们设置相应的* PROJ文件:

<MyTask 
    Configuration="$(Configuration)" 
    TargetPath="$(... whatever ...)" 
/> 
相关问题