2012-11-06 1 views
1

powershell 스크립트를 사용하여 여러 개의 Subversion 작업 복사본을 업데이트하는 아침 의식을 자동화하려고합니다. svn update은 정상적으로 작동하지만 변경 또는 충돌을 표시하려면 SvnUpdateResult에 연결하는 것이 좋습니다.Powershell에서 SharpSvn.SvnUpdateResult를 연결하는 방법

업데이트 결과에 대한 출력 매개 변수를 지정했는데 모호한 오버로드 예외를 극복하는 방법을 모르겠습니까? 난 그냥 클라이언트 또는 tortoiseproc SVN 사용할 수 있습니다 감사

try { 
    Add-Type -Path "C:\Program Files\SharpSVN\SharpSvn.dll" 
} 
catch [System.BadImageFormatException] { 
    Write-Host "LFMF: You're probably using 32bit SharpSVN.dll in 64bit powershell ;-)" 
} 
$paths = @("Project-Trunk", "Project-Branch"); 
$currentPath = (Get-Location).Path 
$svnClient = New-Object SharpSvn.SvnClient 
foreach ($path in $paths) { 
    Write-Host "Updating" $path 
    $svnLocalPath = Join-Path $currentPath $path; 
    # Throws: Multiple ambiguous overloads found for "Update" and the argument count: "2". 
    $svnClient.Update([string]$svnLocalPath, [ref][SharpSvn.SvnUpdateResult]$result) 
} 

,하지만 난 PowerShell에 대한 자세한 내용을 시도하고있다 : 난 이미 매개 변수 유형을 지정하고있다.

답변

1

결과 인수는 C# 출력 인수이며 ref 인수는 아닙니다. (일리노이 레벨에서 출력 인수는 ref 인수이지만 powershell이 ​​다르게 처리한다고 생각합니다.)

출력 인수가 문제가되면 알림 핸들러에서 동일한 정보를 얻을 수도 있습니다.

+0

감사합니다. Bert, 알림 처리기를 살펴 보겠습니다. 당신 말이 맞아요. powershell은'[ref]'를 사용하여'out '을 처리합니다, 참조 : http://stackoverflow.com/q/5276700/44540 – si618