2012-12-03 3 views

答えて

9

パワーツールは必要ありません。 TFSチームエクスプローラでVisual Studioに付属のtf.exeコマンドラインユーティリティを使用してください。 tf edit <file> /nopromptをチェックアウトし、tf checkin <file> /comment:$comment /nopromptをチェックインしてください。詳細については、tf /?tf checkin /?のtf.exeのコマンドラインの使用方法をご覧ください。 tf.exeへのパスでPowerShellセッションを設定する必要があります。これは通常VS varsバッチファイルによって行われます。しかし、単にパスに次のように追加することができます:$PATH += "${VS110COMNTOOLS}..\Ide"

2

パワーツールのコマンドレットがpowershell用にインストールされている場合。 Kiethのようなパスは必要ありません。コマンドレットの一部は、完全なtf.exeパスのtfの別名です。したがって、単にtf.exeコマンドラインリファレンスhereを使用するだけで、powershellコマンドレットが正しくインストールされている場合は、これらのすべてが動作するはずです。

あなたは

Add-PSSnapin Microsoft.TeamFoundation.PowerShell 
+0

最後にTFPTコマンドレットは、32ビットPowerShellでのみ動作していたことに注意してください。 tf.exeアプローチは、32ビットと64ビットPowerShellの両方で動作します。 :-) –

+0

@Keith最新のアップデート(2012年アップデート1で動作)は現在64ビットサポートを提供しています。http://blogs.msdn.com/b/bharry/archive/2012/11/30/new-power-tools- for-update-1-available-aspx – Betty

+0

Keith、私はyoruポイントを理解しています。それが私のやり方です。しかし、問題はPowertools powershellでどうやって解決するかです。 – Alex

2

これは私の解決策ですが、あなたのPowerShellは彼らは、このコマンドを使用してインストールされていることを確かめてください。ここでは

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

x86 vs x64とは何ですか? http://geekswithblogs.net/Lance/archive/2009/12/29/program-files-environment-variable-in-powershell.aspx – Kiquenet

+0

@Kiquenet、私はVisual Studioはまだ32ビットだと信じています。 –

5

は、スナップインがあるかどうかをチェックする関数ですインストールされます。あなたはPowerToolsのをインストールした場合、それは、それ以外の場合は、コマンドラインツール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

これは魅力的に機能しました。私はビジュアルスタジオのバージョンを鉱山に合わせて変更するだけでした。それが見つかるまで、$ {VS ### COMNTOOLS}を降順で循環させると涼しいでしょう。 – Benrobot

+0

@Benrobot - 私はこれを本当に素早く一緒に投げましたが、これを試すことができます。 '$ cmntools = Get-ChildItem -Path 'Env:\ VS * COMNTOOLS' |ソートオブジェクト - プロパティ '名前' - 低下| %{($ _。Value.replace( '\ Tools \'、 '\ IDE \ TF.exe'))} ' – Jim

0

を使用して別のオプションは、あなたが選ぶことなく、同じコマンドで複数のファイルを処理しようとしている場合にはワイルドカードを使用することで、ことを使用しています他のファイルを上書きしたり、ループしたりすることができます。

tf.exe undo AssemblyInfo* /recursive 
    tf.exe checkout AssemblyInfo* /recursive 
    #changes files 
    tf.exe checkin AssemblyInfo* /recursive 
関連する問題