1

调用时出现异常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 源,字符串 targetPath,VersionSpec versionFrom,VersionSpec versionTo,LockLevel lockLevel,MergeOptionsEx mergeOptions,String[] propertyNameFilters)\r\n 在 Microsoft.TeamFoundation.VersionControl .Client.Workspace.Merge(ItemSpec source, String targetPath, VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, MergeOptionsEx mergeOptions)\r\n 在 Microsoft.TeamFoundation.VersionControl.Client.Workspace.Merge(String sourcePath, String targetPath,VersionSpec versionFrom, VersionSpec versionTo, LockLevel lockLevel, RecursionType recursion, MergeOptionsEx mergeOptions)\r\n

4

2 回答 2

1

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

本地什么版本的 Team Explorer?什么版本的 TFS 服务器?

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

于 2011-01-13T11:02:56.153 回答
0

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

于 2011-01-13T12:46:43.163 回答