Hi all,
I facing a trouble and wondering what I did wrong.
My purpose is to compare CurrentBuild to LastBuild content. Copy all modified files in CurrentBuild, and put in a Delta folder only modified files.
To do so I use a copy task from CurrentBuild to LastBuild and skip changes. This works fine until here.
I take the Output CopiedFiles as SourceFile of a second copy task to the Delta folder.
My problem is the Output CopiedFiles returns ITaskItems with filename only, without the file path...
C:\Test\
======
C:\Test\CurrentBuild\
C:\Test\Delta\
C:\Test\LastBuild\
CurrentBuild C:\Test\CurrentBuild\:
=========================
C:\Test\CurrentBuild\1\file1.txt
C:\Test\CurrentBuild\2\file2.txt
C:\Test\CurrentBuild\3\file3.txt
C:\Test\CurrentBuild\file0.txt
LastBuild C:\Test\LastBuild\:
====================
C:\Test\LastBuild\1\file1.txt
C:\Test\LastBuild\2\file2.txt
C:\Test\LastBuild\lastbuildcontenttodelete.txt
Delta : C:\Test\Delta : Empty
====================
<!-- Copy Output to LastBuild--> |
<Copy SourceFiles="@(CurrentBuildFiles)" DestinationFiles="@(CurrentBuildFiles->'$(LastBuildFolder)%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" > |
<Output TaskParameter ="CopiedFiles" ItemName="ModifiedFiles"/> |
</Copy> |
<!-- End Copy Output to LastBuild--> |
Task "Copy" |
Did not copy from file "C:\Test\CurrentBuild\1\file1.txt" to file "C:\Test\LastBuild\1\file1.txt" because the "SkipUnchangedFiles" parameter was set to "true" in the project and the files' sizes and timestamps match. |
Did not copy from file "C:\Test\CurrentBuild\2\file2.txt" to file "C:\Test\LastBuild\2\file2.txt" because the "SkipUnchangedFiles" parameter was set to "true" in the project and the files' sizes and timestamps match. |
Creating directory "C:\Test\LastBuild\3". |
Copying file from "C:\Test\CurrentBuild\3\file3.txt" to "C:\Test\LastBuild\3\file3.txt". |
Command: |
copy /y "C:\Test\CurrentBuild\3\file3.txt" "C:\Test\LastBuild\3\file3.txt" |
Copying file from "C:\Test\CurrentBuild\file0.txt" to "C:\Test\LastBuild\file0.txt". |
Command: |
copy /y "C:\Test\CurrentBuild\file0.txt" "C:\Test\LastBuild\file0.txt" |
Done executing task "Copy". |
LastBuild C:\Test\LastBuild\:
====================
C:\Test\LastBuild\1\file1.txt
C:\Test\LastBuild\2\file2.txt
C:\Test\LastBuild\lastbuildcontenttodelete.txt
C:\Test\LastBuild\3\file3.txt
C:\Test\LastBuild\file0.txt
I used a WriteLinesToFile task to get ModifiedFiles...
I get all files as @(CurrentBuildFiles) but it's perhaps because file where considered as copied...
<Copy |
SourceFiles="@(ModifiedFiles)" |
DestinationFiles="@(ModifiedFiles->'$(Delta)%(RecursiveDir)%(Filename)%(Extension)')"> |
<Output TaskParameter="CopiedFiles" ItemName="ModifiedFiles2"/> |
</Copy> |
Everything comes 'flatly' in C:\Test\Delta\
Delta : C:\Test\Delta :
====================
C:\Test\Delta\file1.txt
C:\Test\Delta\file2.txt
C:\Test\Delta\file3.txt
C:\Test\Delta\file0.txt
What I expected :
Delta : C:\Test\Delta :
====================
C:\Test\Delta\3\file3.txt
C:\Test\Delta\file0.txt
I expect at least the tree structure :
Delta C:\Test\Delta\:
====================
C:\Test\Delta\1\file1.txt
C:\Test\Delta\2\file2.txt
C:\Test\Delta\3\file3.txt
C:\Test\Delta\file0.txt
Do you have my idea ?
What did I wrong ?
Thanks for your answer, I'm lost.
Best regards
Eric