我有以下自定义内联任务,它可以在Windows构建环境中运行:
<UsingTask
TaskName="Name"
TaskFactory="CodeTaskFactory"
AssemblyFile="C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
...
</ParameterGroup>
<Task>
<Code Type="Fragment" Language="cs">
...
</Code>
</Task>
</UsingTask>
我希望这也适用于xbuild。这显然不会起作用,因为路径是特定于窗口的,因此我也尝试使用AssemblyName="Microsoft.Build.Tasks"
,但这也没有用。
那么我应该如何以对msbuild和xbuild都有效的方式在我的自定义任务中引用Microsoft.Build.Tasks
?
答案 0 :(得分:1)
使用AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll"
解决了问题。
根据正在运行的平台,$(MSBuildToolsPath)
看起来设置为合适的任何内容,因此它始终有效。另外,我必须特别使用v12.0,v4.0没有工作。