C#,TFS,HasAdministerPermission在具有非我TFS凭据的我的电脑上为false
我正在编写一个C#应用程序,它将文件从TFS下载(使用Microsoft.TeamFoundation)到工作区,处理文件,签入并删除工作区。用户永远不需要知道这些文件是暂时放在他们的电脑上的 用户无权访问TFC的特定区域,但应用程序内置的网络凭据具有访问权限 所以我得到了工作空间,就像这样C#,TFS,HasAdministerPermission在具有非我TFS凭据的我的电脑上为false,c#,tfs,permissions,workspace,C#,Tfs,Permissions,Workspace,我正在编写一个C#应用程序,它将文件从TFS下载(使用Microsoft.TeamFoundation)到工作区,处理文件,签入并删除工作区。用户永远不需要知道这些文件是暂时放在他们的电脑上的 用户无权访问TFC的特定区域,但应用程序内置的网络凭据具有访问权限 所以我得到了工作空间,就像这样 this.workspace = this.GetWorkspace(workspaceName, credentials); this.workspace.Map(this.ProjectPath, wo
this.workspace = this.GetWorkspace(workspaceName, credentials);
this.workspace.Map(this.ProjectPath, workspaceFolder);
this.workspace.Get();
GetWorkspace在哪里
private Workspace GetWorkspace(string workSpaceName, ICredentials credentials)
{
var tpc = new TfsTeamProjectCollection(new Uri(this.Url), credentials);
var versionControl = tpc.GetService<VersionControlServer>();
var ws = versionControl.TryGetWorkspace(this.WorkspaceFolder)
?? versionControl.CreateWorkspace(workSpaceName, versionControl.AuthorizedUser);
return ws;
}
private Workspace GetWorkspace(字符串workSpaceName,ICredentials凭据)
{
var tpc=new-tfstreamprojectcollection(新Uri(this.Url)、凭证);
var versionControl=tpc.GetService();
var ws=versionControl.tryNetworkSpace(this.WorkspaceFolder)
??versionControl.CreateWorkspace(工作空间名称,versionControl.AuthorizedUser);
返回ws;
}
所有东西都在工作区工作,等我到了就去
TF204017:无法完成该操作,因为用户(ReadyAPI Test Runner)不具有工作区MyWorkspace的一个或多个必需权限(管理);用户名。当我逐步检查工作区变量的权限时,HasAdministerPermission是false
我的假设是凭证(测试运行程序)没有对我的本地文件夹(EffectivePermissions=“Read”)的权限
我试着公开工作空间;并尝试更改工作区所有者的名称,但这些似乎不起作用。我甚至尝试将父文件夹(创建和删除的工作区)与“TestRunner”凭据共享
如何使已解析的凭据具有完全的读写和删除权限?您可以从TFS下载文件,而无需本地工作区 你需要两件事: tfs服务器名称和文件服务器名称
string tfsServerName ="yourServerName";
string fileServerName ="yourFileServerName";
现在连接到服务器:
TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsServerName));
tpc.EnsureAuthenticated();
VersionControlServer sourceControl = (VersionControlServer)tpc.GetService(typeof(VersionControlServer));
现在是最后一行:
sourceControl.DownloadFile(fileServerName, "your local path with file name and extension" );
以上是基本的 当你可以从源代码管理临时下载任何文件时,为什么要使用他必须访问的工作区?你能解释一下“什么时候可以从源代码管理临时下载任何文件”?太棒了!我不知道你能做到。