2016-06-10 1 views
1

두 디렉터리에 파일을 xcopy하려면 MSBuild를 사용하여 도움이 필요합니다.MSBuild를 사용하여 수정 된 파일이나 새 파일 만 재귀 적으로 xcopy하는 방법?

처음으로 나는 Sayed's after.xyz.sln.targets를 발견했습니다. 이렇게하면 실제 빌드 발생 여부와 상관없이 파일 복사 작업이 실행됩니다.

두 개의 대상 디렉토리에 새로운 파일이나 수정 된 파일 만 복사하려고했습니다. 그래서 나는 또한 일종의 비교 코드가 필요하다. 내가 생각할 수있는 단계들.

  1. dir1과 dir2를 비교하고 dir1에서 새로운 파일이나 수정 된 파일을 찾습니다.
  2. 이러한 파일을 dir2에 재귀 적으로 복사합니다.
  3. 그런 다음 정확한 파일 세트를 dir3에 반복적으로 복사하십시오.

TIA.

답변

2

Copy 작업의 매개 변수 SkipUnchangedFiles을 사용해야합니다. 예 :

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <ItemGroup> 
     <MySourceFiles Include="c:\MySourceTree\**\*.*"/> 
    </ItemGroup> 

    <Target Name="CopyFiles"> 
     <Copy 
      SourceFiles="@(MySourceFiles)" 
      DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')" 
      SkipUnchangedFiles="true" 
     /> 
    </Target> 

</Project> 
+0

감사합니다. SkipUnchangedFiles에 대해서는 확실히 몰랐습니다. ItemGroup에서 c : \ MyDestinationTree를 지정하는 방법이 있습니까? @ (MyTarget)을 시도했지만 실제로 항목 이름과 같은 폴더를 만듭니다. – sdog

+0

@sdog, 나는 코멘트에서 두 번째 질문을 올바르게 이해하는지 확신하지 못합니다. 이에 대한 새로운 질문을 열고 자세한 내용으로 시나리오를 설명하십시오. –

+0

새로운 질문이 추가되었습니다. http://stackoverflow.com/q/37795621/2133696 – sdog

관련 문제