전체 경로 이름을 저장하는 GroupProj
속성이 있습니다. 부동산의 디렉토리를 어떻게 추출 할 수 있습니까?속성에서 디렉토리를 추출하는 방법은 무엇입니까?
나는 다음과 같은 코드를 가지고 있지만 예상대로 작동하지 않습니다 :
이<PropertyGroup>
<GroupProj>C:\development\project\default.groupproj</GroupProj>
</PropertyGroup>
<Target Name="Default">
<Message Text="Echo: $(GroupProj->'%(RootDir)')" />
</Target>
내가 이렇게 내 실제 의도를 설명합니다. 아마 내가 모르는 일을하는 방법이있을 것입니다.
은 내가Delphi
groupproj (MSBuild에서 프로젝트) 파일,
C:\development\project\default.groupproj
있습니다
default.groupproj
과 동일한 폴더에 저장된 다른 3 개
MSBuild
파일 (
project1.dproj
,
project2.dproj
및
project3.dproj
)가 있습니다
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Projects Include="project1.dproj">
<Dependencies/>
</Projects>
<Projects Include="project2.dproj">
<Dependencies/>
</Projects>
<Projects Include="project3.dproj">
<Dependencies/>
</Projects>
</ItemGroup>
...
</Project>
. (: \ test.targets C) :
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="3.5">
<Import Project="$(GroupProj)" />
<Target Name="Build">
<MSBuild BuildInParallel="True" Projects="project1.dproj;project2.dproj;project3.dproj"/>
</Target>
</Project>
을하고 실행합니다
은 내가MSBuild
프로젝트 파일을 생성 한 실행
projectN.dproj
파일을 찾을 수 없습니다
MSBuild
으로 실패 할 것이다
c:\> msbuild /p:GroupProj="C:\development\project\default.groupproj" test.targets
. 문제는 작업 디렉토리가 default.groupproj
으로 설정되어 있지 않아야합니다.
하나의 스트레이트 솔루션은 $ (GroupProj)의 디렉토리를 추출하고 거기에 projectN.dproj
파일을 연결하는 것입니다.
그건 내 질문의 전체 이야기입니다.
그냥'<메시지 텍스트를 시도 = "에코 : $ (GroupProj -> % (RootDir)) "/>'. 투표자를 닫으십시오. 중복이 아닙니다! OP는 MSBuild에서 [잘 알려진 항목] (http://msdn.microsoft.com/en-us/library/ms164313.aspx)'% (RootDir)'을 출력하려고합니다. – TLama
@ TLama 저를 시정 해 주셔서 감사합니다. 델파이 태그는 나 혼란 스러웠다. 나는 그것을 지금 제거했습니다. –
@ Chau, 정확하게 에코 할거야? 항목 (노드 '')에 대해서만 잘 알려진 메타 데이터를 가져올 수 있지만 출력 할 내용이 명확하지 않습니다. 이거 좀 더 자세히 설명해 주시겠습니까? –
TLama