2016-06-16 4 views
0

У меня есть следующий заказ рядный задача, которая работает в окнах среды сборки:Использование Microsoft.Build.Tasks в MSBuild + xbuild

<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", который также не работал.

Как я могу ссылаться на Microsoft.Build.Tasks в моей пользовательской задаче таким образом, чтобы это работало как для msbuild, так и для xbuild?

ответ

1

Использование AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll" решило проблему.

Похоже, что $(MSBuildToolsPath) настроен на все, что подходит, в зависимости от бегущей платформы, поэтому он всегда будет работать. Также мне пришлось использовать v12.0, v4.0 не работал.

Смежные вопросы