在为自定义构建任务创建 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 目标和道具文件导入项目”中所述。
现在到我的问题。我Task
获取正在使用构建的项目文件的路径ProjectFileOfTaskNode
。但是当在导入的文件中声明任务时,会返回.targets
文件的路径。.targets
有没有办法获取导入.targets
文件的项目文件的路径?
看起来好像有一种方法可以通过Microsoft.Build.BackEnd.TaskHost
使用反射的一些非公共字段来获取信息。但如果有更开放的方式获得它,我宁愿避免这种情况。