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 ...
}
}
しかし、それは多くの問題のように思えます。タスクが呼び出されたプロジェクトにアクセスするにはどうすればよいですか?