ここで発生する問題は、プロジェクトに同じルート フォルダーにないファイルが含まれている可能性があることです。大規模なソリューションでは、プロジェクト ディレクトリの外にあるファイルを含めるのが一般的です。
直面するもう 1 つの問題は、プロジェクト ディレクトリの下にあるソース管理のすべてのファイルを実際にプロジェクトに含める必要がないことです。
これらのケースを気にしない場合、これを行う最も簡単な方法は、tf コマンド ライン tf folderdiff を使用することです。2 つのパス (両方ともサーバー上にある可能性があります) を渡すことができます。ドキュメントでは明確に指定されていませんが、次のように versionspec を追加できます。
tf folderdiff $/Path/To/Project;C1071 $/Path/To/Project;T /recursive
追加できるものの例は、こちらに記載されています。日付、変更セット番号、ラベル名などが含まれます。
これがどのように行われるかを知りたい場合は、Reflector.NET または JustDecompile (または同様のアプリケーション) で tf.exe ユーティリティを表示することを検討してください。彼らはあなたと同じ API を使用します。tf folderdiff
または、Process クラスを使用してコマンドを直接呼び出すだけです。
tf folderdiff コマンドとその使用方法についてもう少し説明したブログ投稿があります。
魔法を保持するクラスは次のとおりです。
internal class FolderDiff : IEnumerable<FolderDiffFolder>, IEnumerable, IDisposable
Name: Microsoft.TeamFoundation.VersionControl.Controls.FolderDiff
Assembly: Microsoft.TeamFoundation.VersionControl.Controls, Version=11.0.0.0
これは内部的なものなので、どのように行われたかを覗くことができますが、API に簡単にアクセスして同じ結果を得ることはできません。