chcę zadzwonić narzędzi wykonywalnych jak NUnit które zarządzają poprzez Nuget w MSBuild:Get folderu pakietu Nuget w 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>
Problemem jest to, że folder o tematyce pakietów Nuget jest zawierający numer wersji pakietu . Na przykład nunit-console.exe
znajduje się w folderze packages\NUnit.2.5.10.11092\tools
. Jeśli zaktualizuję pakiet NUnit, ta ścieżka się zmieni i będę musiał zaktualizować mój skrypt MSBuild. To nie do przyjęcia.
MSBuild nie pozwala Znaków w katalogach, tak to nie działa:
ToolPath="$(PackagesDirectory)\NUnit.*\tools"
Jak mogę zadzwonić MSBuild narzędzi bez konieczności zaktualizować skrypt kompilacji ilekroć zaktualizować pakiet Nuget?
to „$ (PackagesDirectory)” element zdefiniowaniu siebie? –
@DavidTchepak Tak, jest. –
Co, jeśli rozwiązanie jest duże i zawiera wiele wersji tego samego pakietu (używanych przez różne projekty)? W takim przypadku możesz odwołać się do niewłaściwej wersji (tj. Nie tej, która jest określona w pliku "packages.config" twojego projektu. – johnnyjob