TFS2010 から C# および TFS API を使用して最近チェックインされたファイルを見つけたいです。MS Visual studio 2010 がインストールされている場所では問題なく動作します。これは、VS2010、.Net 3.5 を使用して開発されています。
VS2008 がインストールされているシステムでこの exe を使用すると、"* There is no working folder C:\TFS " * というエラーがスローされます。
- このシステムには 3.5 フレームワークしかありません。
- C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0 からすべてのファイルを実行可能ファイルと共にコピーしました。
- C:\TFS は、実際のマッピング フォルダーです。インナーフォルダーも試してみました。
何か提案をしてください。ローカル マッピングを考慮せずに TFS から結果を取得する方法はありますか?
TeamFoundationServer tfsServer = new TeamFoundationServer("http://snchndevtfsapp:8080/tfs/defaultcollection");
WorkItemStore workItemStore = new WorkItemStore(tfsServer);
VersionControlServer vcServer = tfsServer.GetService(typeof(VersionControlServer)) as VersionControlServer;
var usersWorkspaces = vcServer.QueryWorkspaces(null, vcServer.AuthorizedUser, Environment.MachineName).ToList();
List<ChangedTFSItem> foundPastChanges = new System.Collections.Generic.List<ChangedTFSItem>();
var allPastChangesets = vcServer.QueryHistory(@"C:\TFS",
VersionSpec.Latest,
0,
RecursionType.Full,
null,
null,
null,
1000,
true,
false).Cast<Changeset>();
//.Where(x => x.Committer.Contains(Environment.UserName));
List<ChangedTFSItem> _foundPastChanges = allPastChangesets
.SelectMany(x => x.Changes)
.Where(x => x.Item.CheckinDate.Date >= ((DateTime)dateEdit1.EditValue))
//.DistinctBy(x => x.Item.ServerItem, x => x.Item.ServerItem.GetHashCode())
.Select(x => new ChangedTFSItem()
{
FileName = Path.GetFileName(x.Item.ServerItem),
ServerItem = usersWorkspaces[0].GetLocalItemForServerItem(x.Item.ServerItem).Replace(textEdit1.Text, ""),
LocalPath = usersWorkspaces[0].GetLocalItemForServerItem(x.Item.ServerItem),
ChangeTypeName = x.ChangeType.ToString(),
ChangeDate = x.Item.CheckinDate.ToString()
}).ToList();