VersionControlExt.Explorer 如果我从解决方案资源管理器调用,则为 NULL,但如果我从源代码管理资源管理器调用,则它给了我价值

VersionControlExt.Explorer is NULL if I call from solution explorer but if I call from Source Control Explorer then It is giving me value

我正在开发一个插件,用于查看在解决方案资源管理器中单击按钮时的自定义更改集。

我需要 VersionControlServer 参考,但如果我从解决方案资源管理器中单击按钮,我将无法获得参考,但是如果从源代码管理资源管理器中单击按钮,则它可以正常工作。但我需要从解决方案资源管理器/团队资源管理器中调用它。

this.m_applicationObject = _applicationObject; this.versionControlExt = (VersionControlExt)this.m_applicationObject.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt"); this.versionControlServer = this.versionControlExt.Explorer.Workspace.VersionControlServer;

VersionControlExt.Explorer is NULL if I call from solution explorer but if I call from Source Control Explorer then It is giving me value

使用VersionControlExt.Explorer恐怕得不到你想要的。

VersionControlExt.Explorer 仅适用于 Source Control Explorer 而不是 Solution Explorer

this official document 看到这个:

相反,我使用了 tfs 服务器的 url 来获取版本控制资源管理器。

var projectCollectionUri = new Uri(TFS_COLLECTION);
                var projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(projectCollectionUri, new Microsoft.VisualStudio.Services.Common.VssCredentials());
                projectCollection.EnsureAuthenticated();
                this.versionControlServer = projectCollection.GetService<VersionControlServer>();