-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCopyFiles.props
27 lines (27 loc) · 2.2 KB
/
CopyFiles.props
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildDependsOn>CopyBeforeBuild;$(BuildDependsOn);</BuildDependsOn>
<CleanDependsOn>CleanCopiedFiles;$(CleanDependsOn);</CleanDependsOn>
</PropertyGroup>
<Target Name="CopyBeforeBuild" Condition="'@(CopyFiles)'!=''">
<ItemGroup>
<FilesToCopy Condition="'%(CopyFiles.OutputFile)'!='' And Exists(%(CopyFiles.Identity))" Include="%(CopyFiles.Identity)" OutputFile="%(CopyFiles.OutputFile)"/>
<FilesToCopy Condition="'%(CopyFiles.OutputFolder)'!='' And Exists(%(CopyFiles.Identity))" Include="%(CopyFiles.Identity)" OutputFile="%(CopyFiles.OutputFolder)\%(CopyFiles.RecursiveDir)%(CopyFiles.Filename)%(CopyFiles.Extension)"/>
</ItemGroup>
<Copy SourceFiles="%(FilesToCopy.Identity)" DestinationFiles="%(FilesToCopy.OutputFile)" SkipUnchangedFiles="true">
<Output TaskParameter="CopiedFiles" ItemName="SuccessfullyCopiedFiles" />
</Copy>
<Message Condition="'@(FilesToCopy)'!=''" Text="Successfully copied @(SuccessfullyCopiedFiles->Count())/@(FilesToCopy->Count()) extra files from project "$(ProjectName)"%0A @(SuccessfullyCopiedFiles,'%0A ')" Importance="High" />
</Target>
<Target Name="CleanCopiedFiles" Condition="'@(CopyFiles)'!=''">
<ItemGroup>
<FilesToClean Condition="'%(CopyFiles.OutputFile)'!='' And Exists(%(CopyFiles.OutputFile))" Include="%(CopyFiles.OutputFile)" />
<FilesToClean Condition="'%(CopyFiles.OutputFolder)'!='' And Exists('%(CopyFiles.OutputFolder)\%(CopyFiles.RecursiveDir)%(CopyFiles.Filename)%(CopyFiles.Extension)')" Include="%(CopyFiles.OutputFolder)\%(CopyFiles.RecursiveDir)%(CopyFiles.Filename)%(CopyFiles.Extension)" />
</ItemGroup>
<Delete Condition="Exists(%(FilesToClean.Identity))" Files="%(FilesToClean.Identity)">
<Output TaskParameter="DeletedFiles" ItemName="SuccessfullyCleanedFiles" />
</Delete>
<Message Condition="'@(FilesToClean)'!=''" Text="Successfully cleaned @(SuccessfullyCleanedFiles->Count())/@(FilesToClean->Count()) extra files from project "$(ProjectName)"%0A @(SuccessfullyCleanedFiles,'%0A ')" Importance="High" />
</Target>
</Project>