2011-08-16 4 views
3

하위 디렉토리의 파일을 포함 할 수 있지만 원래 하위 디렉토리 대신 bulid의 루트 디렉토리에 배치합니까?msbuild는 하위 디렉토리에서 루트 디렉토리로 복사/복사 할 수 있습니까?

예 : Google에는 다양한 출시 설정을위한 robots.txt 파일이 여러 개 있습니다. 파일은

내가 동적 같은 것을 사용하여 적절하게 잡을 수 있습니다 \ IncludeTest \ 개발 \의 robots.txt에와 \ IncludeTest \ 생산 \의 robots.txt에 같은 솔루션에 있습니다

<ItemGroup Condition=" '$(Configuration)' == 'Development' "> 
    <Content Include="IncludeTest\Development\robots.txt"> 
     <SubType>Designer</SubType> 
    </Content> 
    </ItemGroup> 

하지만 난 그렇게 할 때 , \ IncludeTest \ Development \ (또는 \ IncludeTest \ Production) 디렉터리를 유지 관리합니다. robots.txt가 있어야하는 루트 디렉토리에 포함시키는 방법은 무엇입니까?

+0

".. \"로 부모 디렉토리를 지정 하시겠습니까? – sll

답변

1

abo 아직 완전히 작동하지 않았지만 항목 그룹을 설정하는 방법에 따라 해결 방법을 찾을 수있었습니다.

링크에 파일을 포함하면은 루트 디렉토리에 저장됩니다. $ (Configuration) 힌트를 사용하여이 작업을 수행 할 수 있었고 루트로 복사하는 대신 링크로 동적으로 포함 할 수있었습니다.

<Content Include="..\Robots_Source\$(Configuration)\robots.txt"> 
    <Link>robots.txt</Link> 
</Content> 
+0

업데이트 된 대상 파일 경로가있는 작업을 사용해 보셨습니까? 나는 다른 경우를 시도하고 그것은 완벽하게, 기본적으로 부모 폴더에 지정된 파일을 복사, 나를 위해 완벽하게 작동합니다, 중요한 포인트는 $ (MSBuildProjectDirectory) – sll

0

내가 질문 권리를 가지고 확실하지, 내가 당신 같은이 작품이 예상 여부를 알려 :

<ItemGroup> 
    <Content Include = "IncludeTest\$(Configuration)\robots.txt"> 
     <SubType>Designer</SubType> 
    </Content> 
    </ItemGroup> 

복사 루트 :

<Copy SourceFiles="@(Content)" 
    DestinationFiles="@(Content ->'..\%(RecursiveDir)%(Filename)%(Extension)')" /> 

편집 : 그것은 파일이있는 경우 문제가 될 수 있습니다 중첩 된 디렉토리에 있으므로 다음을 시도해보십시오.

<Copy SourceFiles="@(Content)" 
    DestinationFiles="@(Content ->'$(MSBuildProjectDirectory)..\%(RecursiveDir)%(Filename)%(Extension)')" /> 
+0

불행히도, 그것은 내가 원하는대로 행동하지 않습니다. 그것이 무엇을하는 부모 루트 폴더 구조 (IncludeTest \ ...) 루트에 오히려 그냥 robots.txt 파일 – dah97765

+0

somethign 잘못하고, 그것은 @ (콘텐츠)에 포함 된 파일을 부모 dir에 이동해야합니다 . 그냥 내 PC에서 testet – sll

+0

내가 EDIT에 하나 이상의 옵션을 추가했습니다 그것을 시도하십시오 – sll

관련 문제