【发布时间】:2009-03-04 07:00:52
【问题描述】:
有没有办法从自定义任务中访问 MSBuild 属性的值?
我知道我可以将它们全部发送,但最好不要:) 我正在尝试从 TFS 构建中执行此操作。
或者有什么方法可以访问当前正在运行的“构建脚本”?也许就像一个对象模型,然后从那里得到我需要的东西?
【问题讨论】:
标签: tfs msbuild properties
有没有办法从自定义任务中访问 MSBuild 属性的值?
我知道我可以将它们全部发送,但最好不要:) 我正在尝试从 TFS 构建中执行此操作。
或者有什么方法可以访问当前正在运行的“构建脚本”?也许就像一个对象模型,然后从那里得到我需要的东西?
【问题讨论】:
标签: tfs msbuild properties
这应该可以完成工作。
public override bool Execute()
{
string projectFile = BuildEngine.ProjectFileOfTaskNode;
Engine buildEngine = new Engine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory());
Project project = new Project(buildEngine);
project.Load(projectFile);
foreach(var o in project.EvaluatedProperties)
{
// Use properties
}
return true;
}
【讨论】:
Microsoft.Build.BuildEngine.Project 和 Microsoft.Build.BuildEngine.Engine 类,我该怎么做呢?这是我发现的从自定义任务中读取属性的唯一示例。