【问题标题】:Error executing TFS command执行 TFS 命令时出错
【发布时间】:2011-06-08 09:57:07
【问题描述】:

调用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);
}

异常详情

目标站点:{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 源,字符串目标路径,版本规范 versionFrom, VersionSpec versionTo, LockLevel lockLevel, MergeOptionsEx 合并选项,字符串 [] propertyNameFilters)\r\n 在 Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(ItemSpec 源,字符串目标路径,版本规范 versionFrom, VersionSpec versionTo, LockLevel lockLevel, MergeOptionsEx 合并选项)\r\n 在 Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(字符串 源路径,字符串目标路径, VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, Recursion类型递归, MergeOptionsEx mergeOptions)\r\n

【问题讨论】:

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


    【解决方案1】:

    异常的类型和消息是什么?

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

    鉴于堆栈顶部的get_AuthorizedUser,我怀疑这是 TFS 客户端无法进行身份验证 - 首先检查当前目录是否在映射的工作区中,并且当前用户在 TFS 上获得授权。

    【讨论】:

    • 这个调用有问题
    • @CaptainComic:正如你所说。请详细说明问题是什么以及发生的环境。 (阅读tinyurl.com/so-hints 会有所帮助。)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多