3
有没有一些方法可以从自定义任务访问msbuild属性的值?我知道我可以将它们全部发送出去,但是不要试图从tfs构建中实现这一点。如何从自定义任务获取msbuild属性的值?
或者是否有一些方法可以访问当前正在运行的“构建脚本”?也许就像一个对象模型,从那里得到我需要的东西?
有没有一些方法可以从自定义任务访问msbuild属性的值?我知道我可以将它们全部发送出去,但是不要试图从tfs构建中实现这一点。如何从自定义任务获取msbuild属性的值?
或者是否有一些方法可以访问当前正在运行的“构建脚本”?也许就像一个对象模型,从那里得到我需要的东西?
这应该做的工作。
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;
}
这有帮助,但我不得不创建一个新的引擎。 BuildEngine属性只包含一个EngineProxy,我无法对引擎进行处理......而且当我创建了一个新的引擎而非属性vas评估的引擎时。所以我刚刚拿出$(某物)。建议? :) – Oddleif 2009-03-04 09:53:34