Я хочу вызывать исполняемые инструменты, такие как 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?