2010-08-26 5 views
6

특정 유형의 모든 파일을 파일 자체와 관련된 디렉토리로 이동하려고하고 있으며 MSBuild를 사용하여 파일을 이동할 수 있는지 궁금합니다.상대 경로를 사용하여 MSBuild에서 파일 이동

기본적으로 Microsoft AJAX Minifier를 사용하여 내 사이트의 모든 Javascript 및 CSS 파일을 축소합니다. 이렇게하면 .min.js 및 .min.css 파일이 Javascript 및 CSS 파일과 동일한 디렉토리에 출력됩니다. 내 사이트에는 수많은 스킨이 있기 때문에 수많은 디렉토리에 JS 및 CSS 파일이 있습니다. 모든 .min.js 및 .min.css 파일을/min/파일 위치로 이동시키는 AJAX Minifier 이후에 실행되는 작업을 추가 할 수 있기를 원합니다. 그래서 /Skin1/somescript.min.js는 /Skin1/min/somescript.min.js로 이동하고 /Skin2/somescript.min.js는 /Skin2/somescript.min.js로 이동합니다.

복사/이동을 수행하는 유일한 방법은 절대 디렉토리에 대한 지식이 필요합니다 (또는 디렉토리와 프로젝트 파일의 상대 경로를 말해야 함)하지만 상대적인 디렉토리를 기반으로 이동할 수있는 방법을 찾지 못하는 것 같습니다 내가 이사 할 파일에.

이 작업을 수행 할 수 있습니까?

답변

12
<CreateItem Include="wwwroot\**\*.min.js;wwwroot\**\*.min.css"> 
    <Output TaskParameter="Include" ItemName="FilesToMove" /> 
</CreateItem> 

<Move SourceFiles="@(FilesToMove)" DestinationFiles="@(FilesToMove->'wwwroot\%(RecursiveDir)\min\%(Filename)%(Extension)')"/> 

MSBuild community tasks에서 이동 작업을 사용한다고 가정합니다. 그렇지 않은 경우 원본을 복사 한 다음 삭제할 수 있습니다.

+0

$ (RecursiveDir) huh? 굉장해, 고마워! – hackerhasid

관련 문제