如何在Build.xml中删除多个Nuget包文件

时间:2016-07-22 14:27:43

标签: c# build msbuild nuget

我编写了一个Build.xml文件,为我的解决方案上的模块创建一个Nuget包,然后将其上传到MyGet存储库。之后,我想删除生成的nupkg文件,以便仅将包保存在存储库中。第一步是工作正常但不是删除部分。我试过这个:

<Project ToolsVersion="4.0"  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Package">
<!-- Package the project -->
<Exec WorkingDirectory="$(BuildDir)" Command="NuGet.exe pack &quot;$(MSBuildProjectDirectory)&quot;\Service.nuspec -Version &quot;$(BUILD_NUMBER)&quot;" />
<!-- Upload the Nuget package -->
<Exec WorkingDirectory="$(BuildDir)" Command="NuGet.exe push *.nupkg {auth-code} -source https://www.myget.org/{myget-source}" />
<!--Removing the Nuget package files created. -->
<Delete Files="*.nupkg" />
</Target>
</Project>

请注意&#34; auth-code&#34;和&#34; myget-source&#34;对应于由于显而易见的原因而被替换的实际值。问题是如何在将它们推送到存储库后删除所有Nuget包(* .nupkg)文件。我尝试将DeleteFiles函数传递给文件的完整名称并且它可以正常工作。所以,当我指定集合时,我不知道为什么它没有。

1 个答案:

答案 0 :(得分:1)

您无法使用通配符删除,但可以删除文件列表。像这样:

<ItemGroup>
  <OldNuGetPackages Include="$(BuildDir)*.nupkg"/>
</ItemGroup>
<Delete Files="@(OldNuGetPackages)"/>