使用MSBuild AfterBuild事件重命名和复制文件?

时间:2019-04-15 13:56:17

标签: visual-studio msbuild

我已经设置了一个AfterBuild目标,以便在有Release版本时将Nuget打包文件复制到我们的内部Nuget库中。很好。

我想做的是在构建调试版本时,通过在名称中的版本号后添加-beta来重命名Nuget包。如何在MSBuild中动态重命名文件?

我当前的目标脚本:

<Target Name="AfterBuild" >
<ItemGroup>
  <BetaNugetFile Include="$(OutputPath)$(TargetName).*.nupkg" />
  <NewNugetFile Include="$(OutputPath)$(TargetName).*.nupkg" />
</ItemGroup>
<Copy SourceFiles="@(NewNugetFile)" DestinationFolder="\\Server1\private\ITDev\Apps\NugetPackages" Condition="'$(Configuration)'=='Release'"/>
<Copy SourceFiles="@(BetaNugetFile)" DestinationFolder="\\Server1\private\ITDev\Apps\NugetPackages\beta" Condition="'$(Configuration)'=='Debug'"/>
  </Target>

此脚本将程序包推送到beta目录,但是我想重命名并将其放在主库中而不是子文件夹中。

这可能吗?

1 个答案:

答案 0 :(得分:2)

关键是使用DestinationFiles代替DestinationFolder

<Copy SourceFiles="@(BetaNugetFile)" DestinationFiles="\\Server1\private\ITDev\Apps\NugetPackages\%(Filename)-beta%(Extension)" Condition="'$(Configuration)'=='Debug'"/>