在MSBuild任务中读取构建参数

时间:2017-06-13 11:09:08

标签: c# 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 个答案:

答案 0 :(得分: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" (请参阅上面的[Required]属性)。根据您的需要。

然后从.targets或。* proj文件中相应地设置它们:

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