12
我想打電話給像NUnit的可執行工具,我的MSBuild通過的NuGet管理:獲取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包來更新我的構建腳本?
是「$(PackagesDirectory)」的項目你自己定義的? – 2015-08-05 02:54:01
@DavidTchepak是的。 – 2015-08-05 13:12:48
如果解決方案很大並且包含相同包的多個版本(由不同項目使用)會怎樣?在這種情況下,您可能會引用錯誤的版本(即不是您項目的「packages.config」文件中指定的版本)。 – johnnyjob 2016-09-26 08:21:44