1

カスタム ビルド タスク用の 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リフレクションを使用して、いくつかの非公開フィールドから情報を取得する方法があるように見えました。しかし、それを取得するよりオープンな方法がある場合は、むしろそれを避けたいと思います.

4

0 に答える 0