2010-03-24 2 views
2

"path :: combine (path1, path2)"함수를 변환해야합니다. 네가 어떤 생각이 든다면 나 좀 도와 줘. 고맙습니다!NAnt 함수 "path :: combine (path1, path2)"를 MSBuild로 변환하는 방법?

+0

그것은 CombinePath 작업이 요약 페이지에 만 "은 MSBuild 작업 참조"에서 트리 탐색에 나열되지 않은 것은 사실이다. – Filburt

+0

나는 당신이 의미하는 것을 본다. MSBuild 팀이 최근 목록에 추가 한 것처럼 보입니다 (알파벳 순서로 표시). –

+0

빈 경로가 CombinePath 작업에 전달되면 BasePath를 반환해야하는 해결 방법으로 예제를 업데이트했습니다. – Filburt

답변

2

사용 CombinePath 작업은 :

<Project DefaultTargets="DefaultTarget" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <MyBasePath>.\a\b</MyBasePath> 
     <MySecondPath>c\d</MySecondPath> 
    </PropertyGroup> 

    <Target Name="Combine"> 
     <PropertyGroup> 
      <MySecondPath Condition="$(MySecondPath)==''">.\</MySecondPath> 
     </PropertyGroup> 
     <CombinePath BasePath="$(MyBasePath)" Paths="$(MySecondPath)"> 
      <Output TaskParameter="CombinedPaths" PropertyName="CombineOutput" /> 
     </CombinePath> 
    </Target> 

    <Target Name="DefaultTarget" DependsOnTargets="Combine"> 
     <Message Text="Result from Combine is $(CombineOutput)" /> 
    </Target> 

</Project> 
+0

고마워요! MSBuild 작업 참조 (http://msdn.microsoft.com/en-us/library/7z253716(v=VS.90).aspx)에서 작업을 검색하므로 매우 이상합니다. Microsoft는 를 여기에 나열하지 않습니다. :( –

+1

내가 찾은 것을 테스트했습니다 : 두 번째 경로가 비어있을 때 CombinePath 첫 번째 경로를 반환하지 않습니다. 그래서, 우리는 NAnt path :: combine와 비교했을 때이 작은 차이를주의해야합니다. –

0

는 새로운 MSBUILD 버전의이 게시물을 업데이트. MSBuild를 4.0까지에서, 당신은 사용할 수 있습니다 property functions

$([System.IO.Path]::Combine($(Path1),$(Path2)))