我想调用我通过 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 中的工具而无需更新构建脚本?