1

を呼び出すときに例外がありますWorkspace.MergeVersionControlExt 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

4

2 に答える 2

1

例外のタイプとメッセージは何ですか?

ローカルのチームエクスプローラーのバージョンは何ですか?TFSサーバーのバージョンは何ですか?

スタックget_AuthorizedUserの最上位にあるので、これはTFSクライアントが認証に失敗していると思われます。まず、現在のディレクトリがマップされたワークスペースにあり、現在のユーザーがTFSで許可されていることを確認します。

于 2011-01-13T11:02:56.153 に答える
0

問題が見つかりました。TFS機能を使用するには、Microsoft.TeamFoundation.VersionControl.Client.dllを参照する必要があります。9.0Studioと10.0Studioの両方をインストールしています。実際に9.0スタジオを使用しているときに10.0からdllを参照しました。ばかげた間違いですが、デバッグには何時間もかかりました。

于 2011-01-13T12:46:43.163 に答える