Получение проекта в пользовательской задаче сборки в импортированных.targets

При создании пакета NuGet для пользовательской задачи сборки я хотел использовать отдельный .targets файл в /build/ папка пакета NuGet.

<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 и реквизит файлов в проект" здесь.

Теперь к моей проблеме. мой Task получает путь к файлу проекта, который создается с помощью ProjectFileOfTaskNode, Но когда задача объявлена ​​в импортированном .targets файл, путь к .targets файл возвращается.

Есть ли способ получить путь к файлу проекта, который импортировал .targets файл?

Выглядело так, как будто возможно был способ получить информацию через некоторые непубличные поля на Microsoft.Build.BackEnd.TaskHost используя отражение. Но я бы предпочел этого избежать, если есть более открытый способ получить его.

0 ответов

Другие вопросы по тегам