Chcę tylko sprawdzić ścieżkę z powershell, a także sprawdzić tę ścieżkę minutę później na Team Foundation Server.Pliki do wylogowania z TFS 2010 z powershell
Jak mogę to zrobić?
Zainstalowałem narzędzia zasilania tfs na moim serwerze.
Chcę tylko sprawdzić ścieżkę z powershell, a także sprawdzić tę ścieżkę minutę później na Team Foundation Server.Pliki do wylogowania z TFS 2010 z powershell
Jak mogę to zrobić?
Zainstalowałem narzędzia zasilania tfs na moim serwerze.
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"
.
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
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
Co jest z x86 vs x64? http://geekswithblogs.net/Lance/archive/2009/12/29/program-files-environment-variable-in-powershell.aspx – Kiquenet
@Kiquenet, Wierzę, że Visual Studio nadal jest tylko 32-bitowe. –
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
}
}
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
@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
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
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. :-) –
@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
Keith, rozumiem yoru punkty i tak też bym to zrobił. Ale pytanie brzmi: jak to zrobić za pomocą Powertools powershell. – Alex