我如何以编程方式更改工作文件夹的位置?

时间:2017-06-19 17:00:34

标签: c# tfs azure-devops tfs-power-tools azure-devops-rest-api

我正在使用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库的文档几乎不存在,所以我不知道为什么这不起作用。

编辑:似乎在我对我的代码进行重构后它开始工作了。有时,冲突的存在也会起到不起作用的作用。

1 个答案:

答案 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);