2010-08-06 2 views
2

너무 간단하다면 용서해주십시오. 저는 MS Build를 거의 완전히 처음 접했습니다. 나는 두 개의 서로 다른 실버 라이트 솔루션을 개발하는 프로젝트를하고 파일 계층 구조는 다음과 같습니다 : 내가 가지고 싶은 무엇MSBuild : 역방향 상대 경로 포함

+ Project123 
    + Assets 
    + Images 
    + Fonts 
    + Video 
    + Source 
    + SL3 
     - Project123-SL3.sln 
     + Solution 
     - App.xaml 
     + Pages 
    + SL4 
     - Project123-SL4.sln 
     + Solution 
     - App.xaml 
     + Pages

은 MSBuild에서이 그 위에 도달하기위한 일이다 (중 SL3 또는 SL4입니다) 부모의 부모 (Source)와 자매 폴더 Assets에이 폴더를 포함시킵니다. 와일드 카드를 사용하여 입력 지정How to: Use Wildcards to Build All Files in a Directory에 입력했는데,이 방법은 상대적 트리를 따라가는 방법을 다시 말하지는 않습니다. 이것이 MSBuild에서 가능합니까?

+0

흠 ... 거기에 앉아 있더라도 솔루션에 자산이 포함되지 않는 이유는 무엇입니까? 프로젝트는 솔루션간에 공유 될 수 있으므로 왜 그렇게 남용하지 않습니까? –

+0

@Hamish Grubijan : 자산 집합이 하나뿐입니다. 비디오를 사용하면 해당 폴더가 상당히 커질 수 있습니다. 이를 각 솔루션 아래에 복제하면 공간과 비용이 낭비됩니다 (Azure와 같은 스토리지 비용도 클라우드 서버에 있습니다). –

+0

가상 폴더는 복사해야 할 필요성을 줄여줍니다. 이제'MsBuild '는 MsBuild 기반의 Visual Studio 솔루션에서 작동해야합니다. 가장 최신의 (VS2010, .Net 4.0) 최신 버전을 사용하는 것이 좋습니다. 이제 MsBuild는 명령 줄에서 솔루션을 구축 할 수있는 유일한 도구는 아닙니다. devenv.exe도 http://msdn.microsoft.com/en-us/library/xee0c8y7(VS.80).aspx를 사용할 수 있습니다. 실제로 msBuild와 devenv.exe는 다른 결과를 생성 할 수 있지만 devenv.exe를 사용하면 GUI에서 작업 한 것처럼 명령 행을 컴파일해야합니다. VS2010에서 가상 폴더를 찾거나 호출 된 폴더를 찾습니다. –

답변

3

Silverlight 프로젝트 파일에서 이와 비슷한 것을 사용할 수 있습니다.

<Content Include="..\..\Assets\**\*"/> 
+0

완벽 하군, 고마워, 고마워! –