MSBuild-如何根据条件复制文件

时间:2018-09-10 21:04:04

标签: visual-studio msbuild msbuild-task

使用MSBuild如何根据构建的配置复制文件,即如果构建配置是Staging vs Release。如果生成配置为“暂存”,则我需要能够复制FolderA \ FileA,并且要生产时使用FolderB \ FileB。同样,复制后的文件应位于输出目录的根目录,而不是文件夹FolderA或FolderB。使用任务会在项目加载期间引发错误。

1 个答案:

答案 0 :(得分:0)

  

MSBuild-如何根据条件复制文件

您可以将Condition=" '$(Configuration)' == 'xxx' "用于项目文件中的复制任务。

要实现此目的,请卸载您的项目。然后在项目的最后,在结束标签</Project>之前,放在脚本下面:

  <ItemGroup>
    <MySourceFilesA Include="FolderA\FileA.txt" />
    <MySourceFilesB Include="FolderB\FileB.txt" />
  </ItemGroup>

  <Target Name="CopyFiles" AfterTargets="Build">
    <Copy SourceFiles="@(MySourceFilesA)" DestinationFolder="$(OutDir)" Condition=" '$(Configuration)' == 'Staging' " />
    <Copy SourceFiles="@(MySourceFilesB)" DestinationFolder="$(OutDir)" Condition=" '$(Configuration)' == 'Release' " /> 
  </Target>

您可以根据需要修改SourceFilesDestinationFolder的页面,只需确保路径正确即可。

希望这会有所帮助。