Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TF14098中的TFS PendEdit结果:访问被拒绝_C#_Tfs_Tf Cli_Vcs Checkout - Fatal编程技术网

C# TF14098中的TFS PendEdit结果:访问被拒绝

C# TF14098中的TFS PendEdit结果:访问被拒绝,c#,tfs,tf-cli,vcs-checkout,C#,Tfs,Tf Cli,Vcs Checkout,我喜欢通过C代码签出文件,但我总是遇到TF14098访问被拒绝的异常。TFS管理员保证,我拥有签出/编辑权限,在VisualStudio和tf.exe中,签出文件时没有任何问题 这是我目前的C代码: 结果是文件的签出没有任何问题!(如果我在文件抵制的目录中) 有人知道问题出在哪里吗?我的代码(我的应用程序是用VisualStudio2012编写和执行的)与命令行tf签出之间有什么区别 谢谢你的提示和提示! Patrik代码中的问题是,TfsTeamProjectCollection不适合您的路径

我喜欢通过C代码签出文件,但我总是遇到TF14098访问被拒绝的异常。TFS管理员保证,我拥有签出/编辑权限,在VisualStudio和tf.exe中,签出文件时没有任何问题

这是我目前的C代码:

结果是文件的签出没有任何问题!(如果我在文件抵制的目录中)

有人知道问题出在哪里吗?我的代码(我的应用程序是用VisualStudio2012编写和执行的)与命令行tf签出之间有什么区别

谢谢你的提示和提示!
Patrik

代码中的问题是,
TfsTeamProjectCollection
不适合您的路径,因为您从未设置集合名称(应该类似@”http://MyServer:8080/tfs/DefaultCollection"). 我从未使用API进行过签出,但我是这样开始签入的:

WorkspaceInfo wi = Workstation.Current.GetLocalWorkspaceInfo(Environment.CurrentDirectory);
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(wi.ServerUri);

VersionControlServer versionControlServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
Workspace workSpace = versionControlServer.GetWorkspace(wi);
如您所见,我使用我的工作区搜索TeamCollection,而不是将其设置为独立。这样做,您将获得正确的
VersionControlServer
进行签出


使用tf.exe工具的区别在于,您可以在本地工作区中运行它,以便该工具知道它在TFS中链接到哪个项目以及链接到哪个集合。

代码中的问题是,
tfstreamprojectcollection
不适合您的路径,因为您从未设置集合名称(应该类似@"http://MyServer:8080/tfs/DefaultCollection"). 我从未使用API进行过签出,但我是这样开始签入的:

WorkspaceInfo wi = Workstation.Current.GetLocalWorkspaceInfo(Environment.CurrentDirectory);
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(wi.ServerUri);

VersionControlServer versionControlServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
Workspace workSpace = versionControlServer.GetWorkspace(wi);
如您所见,我使用我的工作区搜索TeamCollection,而不是将其设置为独立。通过这种方式,您将获得正确的
VersionControlServer
进行签出


使用tf.exe工具的区别在于,您可以在本地工作区中运行它,这样该工具就知道它在TFS中链接到哪个项目以及链接到哪个集合。

这就是问题所在。最终它成功了。这花费了我太多的时间和大量的研究。但奇怪的是,我发现的所有示例或多或少都基于我发布的相同代码上面。奇怪,但我很高兴,它现在可以工作了,我能理解原因。谢谢!为了完成这项任务:我尝试了这个非常好的例子。我仍然想知道,为什么这个示例(PendEdit)在我的环境中不起作用!这是个问题。它终于起作用了。它花费了我太多的时间和大量的研究。但是对于奇怪的,我发现的所有例子或多或少都是基于我上面发布的相同代码。奇怪的,但我很高兴,它现在起作用了,我能理解原因。谢谢!完成这个任务:我用这个版本尝试了它很好的例子。我还在想,为什么示例(PendEdit)在我的环境中不起作用!
WorkspaceInfo wi = Workstation.Current.GetLocalWorkspaceInfo(Environment.CurrentDirectory);
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(wi.ServerUri);

VersionControlServer versionControlServer = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
Workspace workSpace = versionControlServer.GetWorkspace(wi);