当前位置: 首页 > 编程语言 > C#

TFS上工作区共享的C#代码检查

时间:2023-04-10 12:45:42 C#

TFS上工作区共享的C#代码检查我正在尝试创建一个自动化工具以从TFS获取最新代码。我需要检查系统上是否存在同名的工作区。获取工作区实例(如果存在)。否则创建工作区和映射。我发现Microsoft.TeamFoundation.VersionControl.ClientVersionControlServer有方法WorkspaceGetWorkspace(stringworkspaceName,stringworkspaceOwner);获取现有工作区。但是,如果系统上不存在工作区,则会抛出异常。所以请给我一个检查工作区和映射是否存在的代码。目前我有以下代码,我知道它的方法不正确try{//**预期**异常,因为有时工作空间可能不存在或手动删除。workspace=versionControl.GetWorkspace(workspaceName,versionControl.AuthorizedUser);versionControl.DeleteWorkspace(workspaceName,versionControl.AuthorizedUser);工作空间=空;}catch(Exceptione){DialogResultres=MessageBox.Show("没有映射的工作区。我正在创建一个映射到名为DevFolder的本地文件夹的新工作区。","Error",MessageBoxButtons.YesNo);如果(res==DialogResult.No){返回;}}if(workspace==null){varteamProjects=newList(versionControl.GetAllTeamProjects(false));//如果此集合中没有团队项目,则跳过它if(teamProjects.Count<1){MessageBox.Show("请选择一个团队项目。");返回;}//创建一个临时工作区2。workspace=versionControl.CreateWorkspace(workspaceName,versionControl.AuthorizedUser);//对于这个工作区,映射一个服务器文件夹到本地文件夹ReCreateWorkSpaceMappings(workspace);创建的工作空间=真;如果不想依赖捕获异常,可以调用QueryWorkspacesworkspace=versionControl.QueryWorkspaces(workspaceName,versionControl.AuthorizedUser,Environment.MachineName).SingleOrDefault();此代码将查询用户在运行此代码的计算机上的工作区。如果集合为空,它将返回工作区中的null,否则将返回列表中的单个项目。它仍然会在QueryWorkspaces返回更多项目的情况下抛出(似乎不可能),但这对我来说似乎没问题。现在您可以检查映射。以上是C#学习教程:C#代码查看TFS上是否有工作区共享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——!=null){foreach(varfolderinworkspace.Folders){if(!folder.IsCloaked&&folder.LocalItem!="someexpectedpath"){//映射无效,抛出/记录?}}}本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: