を呼び出すときに例外があります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(String sourcePath、String targetPath、VersionSpec versionFrom、VersionSpec versionTo、LockLevel lockLevel、RecursionType recursion、MergeOptionsEx mergeOptions)\ r \ n