如何在 MSBuild 的自定义任务中访问当前项目上下文?起初它看起来好像ProjectCollection上的 GlobalProjectCollection 引用允许访问,但这似乎是空的,至少在从命令行运行 MSBuild 时是这样。
我目前可以通过以下方式从当前项目文件中获取新的项目实例:
List projectAssemblies = new List();
using (XmlReader projectFileReader =
XmlReader.Create(this.BuildEngine.ProjectFileOfTaskNode))
{
Project project = new Project(projectFileReader);
foreach (ProjectItem item in project.AllEvaluatedItems)
{
... woo hoo ...
}
}
但这似乎很麻烦。如何才能访问调用我的任务的项目?