我正在使用Microsoft提供的.NET库与Visual Studio Team Services进行交互。我希望能够在不使用Team Foundation Power Tools或Visual Studio的情况下更改工作文件夹的本地路径,只使用我正在制作的类库。
问题是新位置的源控件无法识别更改。我可以通过Power Tools菜单看到工作区的新工作文件夹,但它不会自动检测该工作文件夹中的更改。
这是我的功能代码:
this.workingFolder = new WorkingFolder(this.workingFolder.ServerItem, newLocalFolder);
workspace.CreateMapping(workingFolder);
UpdateWorkspace();
public int UpdateWorkspace()
{
// Check if user has read permissions.
CheckWorkspacePermissions();
// Update the workspace with most recent version of the project files from the repository.
GetStatus status = workspace.Get();
Console.Write("Conflicts from checkout: ");
Console.WriteLine(status.NumConflicts);
return status.NumConflicts;
}
我很无能为力。这些.NET库的文档几乎不存在,所以我不知道为什么这不起作用。
编辑:似乎在我对我的代码进行重构后它开始工作了。有时,冲突的存在也会起到不起作用的作用。
答案 0 :(得分:1)
使用以下代码,它可以更改TFVC repo(TryTFVC)地图路径,例如从C:\Users\TFSTest\Source\Workspaces\G1\TryTFVC
更改为C:\Users\TFSTest\Source\Workspaces\G1\1
:
NetworkCredential cred1 = new NetworkCredential("alternate credential username", "alternate credential password");
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("https://account.visualstudio.com"), cred1);
VersionControlServer versionControl = tpc.GetService<VersionControlServer>();
Workspace ws = versionControl.GetWorkspace(@"C:\Users\TFSTest\Source\Workspaces\G11\TryTFVC");//older path
WorkingFolder wf = new WorkingFolder("$/TryTFVC", @"C:\Users\TFSTest\Source\Workspaces\G1\1");
ws.CreateMapping(wf); //map with new path
ws.Get();
GetStatus status = ws.Get();
Console.Write("Conflicts from checkout: ");
Console.WriteLine(status.NumConflicts);