在msbuild + xbuild

时间:2016-06-16 16:22:05

标签: msbuild mono msbuild-task xbuild

我有以下自定义内联任务,它可以在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

1 个答案:

答案 0 :(得分:1)

使用AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll"解决了问题。

根据正在运行的平台,$(MSBuildToolsPath)看起来设置为合适的任何内容,因此它始终有效。另外,我必须特别使用v12.0,v4.0没有工作。