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