3

選択したプロジェクトの最新バージョンを取得するためのコードをいくつか書きました。実行すると動作します。しかし、フォルダーを削除して再度実行すると、「すべてのファイルが最新です」と表示されます

Visual Studio TFS source kontrol と Get Specific version を使用してこの問題を解決しました。TFS API を使用して C# プロジェクトに実装するにはどうすればよいですか?

私のコード:

WorkingFolder workfolder = new WorkingFolder(ServerFolder, LocalFolder);
workspace.CreateMapping(workfolder);

workspace.Get(VersionSpec.Latest, GetOptions.Overwrite);

編集:

そのコードを追加し、戻り値「getStatus」を確認します

GetStatus getStatus = workspace.Get(VersionSpec.Latest,  GetOptions.Overwrite);
if (getStatus.NoActionNeeded)
// create new workspace and use same codes in "My code"
4

3 に答える 3

1

2012年にローカルワークスペースを使用している場合、削除したファイルをGetLatestがダウンロードしないという問題は問題になりません。ただし、「サーバー」ワークスペースでは、TFSは、TFSに通知したローカルディスクへの変更についてのみ認識します。この場合、TFSサーバーは削除したファイルを認識しないため、ファイルが欠落していることを認識せず、ファイルを再ダウンロードしません。

この場合にそれらを取得したい場合は、ダンが言及しているようにフォースオプションを渡す必要があります。ただし、フォースは常に通過するための優れたオプションではありません。これにより、すべてのコンテンツが強制的に再ダウンロードされます。これは、通常は実行したくないことです。

于 2012-09-13T18:11:08.390 に答える
1

これを試すつもりはありませんが、GetOptions.Overwrite と GetOptions.GetAll を組み合わせることができますか?

workspace.Get(VersionSpec.Latest, GetOptions.Overwrite | GetOptions.GetAll)

コマンド ラインから、tf get コマンドに /force オプションを使用します。GetOptions.GetAll フラグは /force オプションと同等であると思います。

于 2012-09-13T15:31:50.833 に答える
0

これらの手順に従うことができます-VersionControlServer クラスに基づいて

リンク: http://msdn.microsoft.com/fr-fr/library/microsoft.teamfoundation.versioncontrol.client.versioncontrolserver.aspx

リンク: http://msdn.microsoft.com/fr-fr/library/bb138927.aspx

注:参照を追加

Microsoft.TeamFoundation.VersionControl.Client.dll 

Microsoft.TeamFoundation.Client.dll
于 2012-09-13T14:45:34.860 に答える