私は、当社の開発者を支援するためのTFSツールを開発しています。
このツールは、ソース管理エクスプローラーのようにTFSサーバーを「参照」できる必要があります。VersionControlExt.Explorer.SelectedItemsを使用すると、UIがポップアップ表示され、ユーザーがTFSサーバーを参照できるようになると思います(間違っている場合は修正してください)。
ただし、VersionControlExtにアクセスできるのは、Visual Studio(別名プラグイン)内で開発する場合のみです。残念ながら、私はVS内で実行されないWindowsアプリケーションを開発しています。
したがって、問題は、Visual Studioの外部でVersionControlExtを使用できますか?はいの場合、どのように?
VisualStudioの外部でChangsetDetailsダイアログを使用する試みを次に示します。
string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Assembly vcControls = Assembly.LoadFile(path + @"\Microsoft.TeamFoundation.VersionControl.Controls.dll");
Assembly vcClient = Assembly.LoadFile(path + @"\Microsoft.TeamFoundation.VersionControl.Client.dll");
Type dialogChangesetDetailsType = vcControls.GetType("Microsoft.TeamFoundation.VersionControl.Controls.DialogChangesetDetails",true);
Type[] ctorTypes = new Type[3] {vcClient.GetType("Microsoft.TeamFoundation.VersionControl.Client.VersionControlSever"),
vcClient.GetType("Microsoft.TeamFoundation.VersionControl.Client.Changeset"), typeof(System.Boolean)};
ConstructorInfo ctorInfo = dialogChangesetDetailsType.GetConstructor(ctorTypes);
Object[] ctorObjects = new Object[3] {VersionControlHelper.CurrentVersionControlServer, uc.ChangeSet, true};
Object oDialog = ctorInfo.Invoke(ctorObjects);
dialogChangesetDetailsType.InvokeMember("ShowDialog", BindingFlags.InvokeMethod, null, oDialog, null);