5

TfsTeamProjectCollection に問い合わせて、サーバー上に新しいバージョンのファイルがあるかどうかを判断できるようにしたいと考えています。実際にファイルをフェッチせずにこれを実行できるようにしたいと考えています。

これはどこかで可能ですか?私はいくつかのスクラッチを行い、これまで空白を描いてきました。

ありがとう。

4

3 に答える 3

0

これは、特定のファイルが最新かどうかを確認する別の方法です。

string file_path = @"your_file_path";

WorkspaceInfo info = Workstation.Current.GetLocalWorkspaceInfo(file_path);

Workspace ws = info.GetWorkspace(new TfsTeamProjectCollection(info.ServerUri));

GetStatus status = ws.Get( new GetRequest(
                                          new ItemSpec ( file_path, RecursionType.Full ), 
                                          VersionSpec.Latest ), 
                            GetOptions.Preview );

if(status.NoActionNeeded)
     MessegeBox.Show("Latest");
else
     MessegeBox.Show("Not Latest");

手順

1)Workspaceファイル パスを含むを取得する必要があります。を使用しております

Workstation.GetLocalWorkspaceInfo Method (String)

WorkspaceInfo指定されたファイルを含むワークスペースのプロパティを含むオブジェクトを取得します。

このWorkspaceInfoオブジェクトを使用して、そのワークスペースのインスタンスを取得できます。

WorkspaceInfo.GetWorkspace Method (TfsTeamProjectCollection)

2)Get次に、ワークスペース オブジェクトで操作を実行する必要があります。

Workspace.Get Method (GetRequest[], GetOptions)

2 番目のパラメーターにGetOptionsは、6 つの可能なメンバー値があります。それぞれに目的があります。

ファイルをダウンロードする必要がないため、

メンバー値Previewを使用しますExecutes a get without modifying the disk.

3)オペレーションは、オペレーションのステータスを表すオブジェクトをGet返します。GetStatusWorkspace.Get

これには、操作の処理中に発生した操作、競合、エラーなどの数に関する情報が含まれGetています。

GetStatusオブジェクトにはいくつかのプロパティがあります。NoActionNeeded失敗や操作が発生しなかったかどうかを示すフラグを取得するというプロパティを使用します。

操作やエラーが発生しなかった場合、フラグの値はTrueになります。つまり、ファイルはすでに最新バージョンです。それ以外の場合、フラグはFalseになり、ファイルが TFS で利用可能な最新バージョンではないことを意味します。

于 2018-02-01T14:02:38.817 に答える