我尝试创建一些需要在目标项目构建完成后运行脚本的工具。 为了做到这一点,我在我的工具中创建了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任务中读取构建变量?
答案 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 ...)"
/>