インターネット上の通常のアドバイスに従ってキャッシュされたワークスペースの設定を更新しようとした後でも、TFPT.exeをまったく機能させられません。私が試してみたもののログの代表については、以下を参照してください。 「tf get」がワークスペースを決定できる理由を誰かが説明できますが、「tfpt annotate」は失敗しますか?
C:\tfsproj> set tfptcmd="C:\Program Files (x86)\Microsoft Team Foundation Server 2010 Power Tools\TFPT.exe"
C:\tfsproj> set tfcmd="C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TF.exe"
C:\tfsproj> %tfcmd% workspaces /s:http://tfs:8080/tfs/Apps
Collection: tfs\Apps
Workspace Owner Computer Comment
--------- -------------- -------- ---------------------------------------------
DAVID David_Zarlengo DAVID
C:\tfsproj> %tfcmd% get /preview
C:\tfsproj\src\:
Replacing Readme.txt
C:\tfsproj> %tfptcmd% annotate src\Readme.txt
Unable to determine the workspace
Visual Studio 2010でワークスペースを編集すると、[作業フォルダー]グリッドに3つの行が含まれ、そのうちの1つは「アクティブ、$/Foo、C:\ tfsproj」であるため、フォルダーが正しくマップされていると想定します。
これを見直してみると、「C:\ tfsproj」が「C:\ some\nested\path」へのディレクトリシンボリックリンクであることがわかります。ネストされたパスからTFPTコマンドを実行すると、期待どおりに機能します。
興味深いことに、TFSワークスペースはネストされたパスにマップされていたため、TFコマンド(たとえば、tf get/preview)がエイリアスパスから正しく機能できたことは驚くべきことです。
ワークスペースを決定するときに、TFPTがNTFSディレクトリのシンボリックリンクを正しくたどらないのではないかと思います。
MSDNフォーラムでの同様の議論 からのこの提案は私を助けました:
マップされたフォルダからコマンドを実行していることを確認する必要があります、
tf workfold
を実行できます現在のフォルダーがマップされているかどうかを確認します(つまり、あなたの場合はC:\Temp
からコマンドを実行します)
これと同じエラーが発生し、問題はコマンドラインからtfptを実行したときに、2010バージョンではなく、2008バージョンのパワーツールに解決されていたことでした。
引数なしでtfptを実行すると、ダンプされたヘルプで、どのバージョンであるかがわかります。
Vs2017の場合:vs2017(2017ではない)を起動し、vs2015でTFSサーバーに接続していることを確認してください。tfptは正常に機能しました。
ただし、tf powertoolsコマンドが新しいtfsツールに統合されているようですので、tfptは実際には2017年のものではありません。詳細と役立つリンクについては、Daniel Mannの回答を参照してください: tfpt.exe on Visualスタジオ2017
私の場合、これが私がこの問題にたどり着いた方法(エラーメッセージ"ワークスペースを特定できません")と、それをどのように解決したかです。
到着:
コードがいくつかありました。開発は私が働いていたブランチ(それをBranch1と呼ぶことにします)からBranch2に移動しました。 Branch2の下で続行する必要がありました。変更を保留し、開発フォルダーをBranch2に再マップし、開きましたVS2012の開発者コマンドプロンプトで、次のコマンドを実行しました
tfpt unshelve/migrate/source: "$/path/Branch1"/target: "$/path/Branch2" "Shelveset Name"
ここに「Unable ...」というメッセージがあります
解決:
私の場合、問題は、コマンドプロンプトを開いたときに、その作業ディレクトリがc:\program files\...\...Visual Studio 11...
。私は作業ディレクトリをブランチ自体のディレクトリに変更したときに動作しました(shelvesetを移行):c:\MyBranchFolder
作業ディレクトリ内にいる限り、tfpt annotateは機能します。 「ワークスペースを判別できません」というメッセージが表示される場合は、キャッシュの問題です。
あなたが言ったように、tf workspaces/s:serverURLを実行してもまだ解決しない場合は、新しいワークスペースを作成してテストしてみます。それが機能する場合、ワークスペースに明らかに何か問題があり、私はそれを削除して新しいワークスペースを使用します。両方が失敗した場合、もちろん大きな問題がありますが、それが私がそれに取り組む方法です。