カスタム ビルド タスク用の NuGet パッケージを作成しているときに、NuGet パッケージのフォルダーにある別.targets
のファイルを使用したいと考えていました。/build/
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="MyTask" AssemblyFile="..\tools\MyTask.dll" />
<Target Name="MyTarget">
<MyTask />
</Target>
</Project>
NuGet にファイルを自動的にインポートさせるには、こちら.targets
の「MSBuild ターゲットと小道具ファイルをプロジェクトにインポートする」で説明されているようにします。
今私の問題に。MyTask
を使用してビルドされているプロジェクト ファイルのパスを取得しますProjectFileOfTaskNode
。ただし、インポートされたファイルでタスクが宣言されている場合は.targets
、ファイルのパス.targets
が返されます。
ファイルをインポートしたプロジェクト ファイルのパスを取得する方法はあり.targets
ますか?
Microsoft.Build.BackEnd.TaskHost
リフレクションを使用して、いくつかの非公開フィールドから情報を取得する方法があるように見えました。しかし、それを取得するよりオープンな方法がある場合は、むしろそれを避けたいと思います.