関連処理はTfsWorkItemクラスに入れています。
GetWorkItemsFromId()で作業項目IDから作業項目のリストを取得し、GetChangeFileList()で作業項目内の変更セットからファイル一覧を取得しています。
後は、取得したファイル一覧を単純にコンソールに出力しているだけです。
チームプロジェクトコレクションのURLを引数にして、Microsoft.TeamFoundation.Client.TfsTeamProjectCollection()を呼び出すだけです。これだとOSユーザでTFSに接続しますので、OSユーザと異なるユーザ情報でTFSに接続したい場合はCredentialsを引数に追加してください。
ここでは、作業項目管理オブジェクトであるWorkItemStoreも取得しています。
WIQL(Work Item Query Language)というSQLに似たクエリ言語を使用して作業項目のリストを取得します。詳細については、MSDNの「バグ、タスク、およびその他の作業項目の照会」で確認してみてください。但し、項目名称は英語版を元に記載されているため、日本語版のTFSでは「フィールドがない」と怒られてしまいます。項目名称は画面上で表示される名称がそのまま使用可能なのですが、コマンドで確認することも可能です。それについては別の機会に説明したいと思います。
今回は一旦WorkItemsから作業項目自体を取得し、作業項目からリンクをたどるようにしています。ちなみですが、リンクを取得するだけであれば、「From WorkItemLinks」で取得可能なのです。
Queryメソッドの戻りはWorkItemCollectionですので、ループでぶん回せば作業項目を取得できます。
次はforeachでぶん回して変更セットから変更ファイルのリストを取得するところです。