C# 从web服务从TFS签出文件
我在这里读过几篇关于用C# 从web服务从TFS签出文件,c#,web-services,tfs,tfs-sdk,C#,Web Services,Tfs,Tfs Sdk,我在这里读过几篇关于用TfsTeamProjectCollectionFactory替换过时的TeamFoundationServer的文章,但不是在web服务中。过时的方法在我的web服务中有效,但tfstreamprojectcollectionfactory方法无效。它总是在设置工作空间变量时引发异常: 没有C:\MyPath的工作文件夹映射 web服务使用一个分配给我的身份的应用程序池,我的身份是本地机器管理员,如果我将其设置为控制台应用程序,则新方法可以工作 在web服务中替换Team
TfsTeamProjectCollectionFactory
替换过时的TeamFoundationServer
的文章,但不是在web服务中。过时的方法在我的web服务中有效,但tfstreamprojectcollectionfactory
方法无效。它总是在设置工作空间变量时引发异常:
没有C:\MyPath的工作文件夹映射
web服务使用一个分配给我的身份的应用程序池,我的身份是本地机器管理员,如果我将其设置为控制台应用程序,则新方法可以工作
在web服务中替换TeamFoundationServer
是否可行
void TfsCheckout(string tfsServer, string wkSpace, string fileName)
{
try
{
//new method
var pc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(tfsServer));
var versionControlServer = (VersionControlServer)pc.GetService((typeof(VersionControlServer)));
var workspace = versionControlServer.GetWorkspace(wkSpace);
var result = workspace.PendEdit(fileName);
//obsolete method
var tfs = new TeamFoundationServer(tfsServer, new UICredentialsProvider());
var versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
var workspc = versionControl.GetWorkspace(Environment.MachineName, versionControl.AuthenticatedUser);
result = workspc.PendEdit(fileName);
UpdateStatus(new UpdateStatusEventArgs("Checkout: " + fileName));
UpdateStatus(new UpdateStatusEventArgs("Result: " + result + " (1=success 0=fail)"));
}
catch (Exception ex)
{
UpdateStatus(new UpdateStatusEventArgs(ex.ToString()));
UpdateStatus(new UpdateStatusEventArgs("Done"));
}
}
将AuthorizedUser属性添加到我的GetWorkspace并使其正常工作:
var pc=new-tfstreamprojectcollection(new-Uri(tfsServer));var versionControlServer=(versionControlServer)pc.GetService((typeof(versionControlServer));var workspace=versionControlServer.GetWorkspace(Environment.MachineName,versionControlServer.AuthorizedUser);var result=workspace.PendEdit(文件名)这帮我解决了!谢谢