MSBuildのNuGetを介して管理するNUnitのような実行可能ツールを呼び出したい:
<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"
NuGetパッケージを更新するたびにビルドスクリプトを更新せずに、MSBuildでツールを呼び出すにはどうすればよいですか?