2012-12-03 12 views

Odpowiedz

9

Nie potrzebujesz elektronarzędzi. Po prostu użyj wiersza poleceń tf.exe, który jest dostarczany z Visual Studio z TFS Team Explorer. tf edit <file> /noprompt do wyewidencjonowania i tf checkin <file> /comment:$comment /noprompt do sprawdzenia. Sprawdź użycie wiersza polecenia na tf.exe, aby uzyskać więcej informacji tf /? i tf checkin /?. Konieczne będzie skonfigurowanie sesji PowerShell za pomocą opcji Ścieżka do pliku tf.exe. Zwykle odbywa się to za pomocą plików wsadowych VS vars. Ale powinieneś być w stanie po prostu dodać do ścieżki tak: $PATH += "${VS110COMNTOOLS}..\Ide".

2

Jeśli masz zainstalowane polecenia narzędzi dla powerhell. Nie potrzebujesz takiej Ścieżki jak Kieth, część aliasów poleceń tf dla pełnej ścieżki tf.exe. Tak więc, po prostu użyj polecenia wiersza polecenia tf.exe here, a wszystkie z nich powinny działać, jeśli masz poprawnie zainstalowane polecenia powershell.

Należy upewnić się, że PowerShell ma je zainstalowane za pomocą tego polecenia, chociaż

Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
+0

Należy pamiętać, że po sprawdzeniu, polecenia cmdlet TFTP działały tylko w 32-bitowym PowerShell. Podejście tf.exe działa zarówno w 32-bitowym, jak i 64-bitowym PowerShell. :-) –

+0

@KeithHill najnowsza aktualizacja (działa z aktualizacją 2012 1) ma teraz wsparcie 64-bitowe - http://blogs.msdn.com/b/bharry/archive/2012/11/30/new-power-tools- for-update-1-is-available.aspx – Betty

+0

Keith, rozumiem yoru punkty i tak też bym to zrobił. Ale pytanie brzmi: jak to zrobić za pomocą Powertools powershell. – Alex

2

To jest moje rozwiązanie:

$tf = &"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe"  checkout C:\setup\folder /recursive 
$tf | Out-null 
+0

Co jest z x86 vs x64? http://geekswithblogs.net/Lance/archive/2009/12/29/program-files-environment-variable-in-powershell.aspx – Kiquenet

+0

@Kiquenet, Wierzę, że Visual Studio nadal jest tylko 32-bitowe. –

5

Oto funkcja, która sprawdza, czy snap-in jest zainstalowany. Jeśli zainstalowałeś elektronarzędzia, używa, że ​​w przeciwnym razie, to korzysta z narzędzia wiersza poleceń tf.exe

function checkout-file([string] $file) 
{ 
    "Checking out $file" 
    if ((Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null) 
    { 
     Add-PsSnapin Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue 

     if ((Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null) 
     { 
      #try to check out the code using command line tf.exe 
      &"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\TF.exe" checkout $file | Out-Null 
     } 
     else{ 
      #checkout the file using snapin 
      Add-TfsPendingChange -Edit $file | Out-Null 
     } 
    }else{ 
     #checkout the file using snapin 
     Add-TfsPendingChange -Edit $file | Out-Null 
    } 
} 
+1

To działało jak czar. Musiałem tylko zmienić wersję studyjną, żeby pasowała do mojej. Byłoby fajnie, gdyby cyklicznie przechodził przez $ {VS ### COMNTOOLS} w malejącej kolejności, aż znalazł. – Benrobot

+0

@Brobrobot - Zrobiłem to bardzo szybko, ale możesz spróbować. '$ cmntools = Get-ChildItem-Path 'Env: \ VS * COMNTOOLS' | Sort-Object -Property 'Name' -Descending | % {($ _. Value.replace ('\ Tools \', '\ IDE \ TF.exe'))} ' – Jim

0

Inną opcją jest skorzystanie z dziką kartę, jeśli próbujesz do obsługi wielu plików w tym samym poleceniu bez podnoszenia inne pliki lub pętle nad nimi.

tf.exe undo AssemblyInfo* /recursive 
    tf.exe checkout AssemblyInfo* /recursive 
    #changes files 
    tf.exe checkin AssemblyInfo* /recursive 
Powiązane problemy