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 ...
}
}
それだけで多くの問題のように思えます。自分のタスクが呼び出されたプロジェクトにアクセスするにはどうすればよいですか?
あなたは正しいですか? タスクであっても、内部からの親オブジェクトを参照するのではなく、コンテナプロジェクトからの参照が渡されます。これが私が現在参照しようとしているものなので、私はこのコア・タスクと同様の方法でリファレンスを導き出すつもりです。 –
bojolais
グローバルプロパティはどうですか?それらはタスク内でアクセスできますか? – Irek