Получить папку пакета NuGet в MSBuild

Я хочу вызывать исполняемые инструменты, такие как NUnit, которыми я управляю через NuGet в MSBuild :

<Target Name="Test">
  <CreateItem Include="$(BuildCompileDirectory)\*.Tests.*dll">
    <Output TaskParameter="Include" ItemName="TestAssemblies" />
  </CreateItem>
  <NUnit
    Assemblies="@(TestAssemblies)"
    ToolPath="$(PackagesDirectory)\NUnit.2.5.10.11092\tools"
    WorkingDirectory="$(BuildCompileDirectory)"
    OutputXmlFile="$(BuildDirectory)\$(SolutionName).Tests.xml" />
</Target>

. Проблема в том, что папка пакетов NuGet содержит номер версии пакета. Например nunit-console.exeнаходится в папке packages\NUnit.2.5.10.11092\tools. Если я обновлю пакет NUnit, этот путь изменится, и мне придется обновить свой скрипт MSBuild. Это неприемлемо.

MSBuild не допускает подстановочные знаки в каталогах, поэтому это не работает :

ToolPath="$(PackagesDirectory)\NUnit.*\tools"

. Как я могу вызывать инструменты в MSBuild, не обновляя сценарий сборки при каждом обновлении пакета NuGet?

12
задан Martin Buberl 29 July 2012 в 00:04
поделиться