执行TFS命令时出错

时间:2011-01-13 10:19:06

标签: c# .net visual-studio-2008 tfs tfs-sdk

调用Workspace.Merge时我有一个例外。我正在访问VersionControlExt 来自VisualStudio。下面的代码可以访问Visual Studio TFS资源管​​理器窗口对象(在环境中处于活动状态并且用户已登录)。

VersionControlExt vce;
vce = _applicationObject.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt") as VersionControlExt;

MergeCandidate[] candidates = version.GetMergeCandidates(source, dest, RecursionType.Full);
Workspace ws = vce.Explorer.Workspace;

foreach (MergeCandidate mc in candidates)
{
 string comment = mc.Changeset.Comment;
 ChangesetVersionSpec csvs = new ChangesetVersionSpec(mc.Changeset.ChangesetId);


// HERE NULL REFERENCE EXCEPTION IS THROWN
GetStatus gs = ws.Merge(source, dest, csvs, csvs, LockLevel.None, RecursionType.Full, MergeOptionsEx.None);
}

异常详情

  

TargetSite:{System.String   get_AuthorizedUser()}

栈跟踪

  

在   Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer.get_AuthorizedUser(个)\ r \ n   在   Microsoft.TeamFoundation.VersionControl.Client.Workspace.get_DisplayName(个)\ r \ n   在   Microsoft.TeamFoundation.VersionControl.Client.Workspace.RequireLocal(个)\ r \ n   在   Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(ItemSpec   source,String targetPath,VersionSpec   versionFrom,VersionSpec versionTo,   LockLevel lockLevel,MergeOptionsEx   mergeOptions,String []   propertyNameFilters)\ r \ n at   Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(ItemSpec   source,String targetPath,VersionSpec   versionFrom,VersionSpec versionTo,   LockLevel lockLevel,MergeOptionsEx   mergeOptions)\ r \ n at   Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(字符串   sourcePath,String targetPath,   VersionSpec versionFrom,VersionSpec   versionTo,LockLevel lockLevel,   RecursionType递归,   MergeOptionsEx mergeOptions)\ r \ n

2 个答案:

答案 0 :(得分:1)

什么是例外的类型和消息?

本地哪个版本的团队资源管理器?什么版本的TFS服务器?

在堆栈顶部给定get_AuthorizedUser,我怀疑这是TFS客户端无法通过检查当前目录是否在映射工作空间中进行身份验证 - 启动并且当前用户已在TFS上获得授权。

答案 1 :(得分:0)

发现问题。为了使用TFS功能,需要引用Microsoft.TeamFoundation.VersionControl.Client.dll。我安装了9.0 Studio和10.0 Studio。我在实际使用9.0 studio时引用了10.0的dll。愚蠢的错误,但它需要花费数小时来调试。