C#,TFS,HasAdministerPermission在具有非我TFS凭据的我的电脑上为false

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

我正在编写一个C#应用程序,它将文件从TFS下载(使用Microsoft.TeamFoundation)到工作区,处理文件,签入并删除工作区。用户永远不需要知道这些文件是暂时放在他们的电脑上的

用户无权访问TFC的特定区域,但应用程序内置的网络凭据具有访问权限

所以我得到了工作空间,就像这样

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" );

以上是基本的

当你可以从源代码管理临时下载任何文件时,为什么要使用他必须访问的工作区?你能解释一下“什么时候可以从源代码管理临时下载任何文件”?太棒了!我不知道你能做到。