【发布时间】:2019-11-13 00:50:52
【问题描述】:
我正在编写一个 Visual Studio 2015 扩展,我想在其中订阅一些 TFS 的 VersionControlServer 事件。但实际上没有任何事件被触发。我想我已经知道为什么了,但我不知道如何让它为我的目的工作。微软的文档也很差,根本不存在......
问题是:有没有办法从我的扩展订阅事件。
我已经研究了很多线程,但找不到任何对我有帮助的东西。我的代码如下所示:
var tfsProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection (TfsPath, new UICredentialsProvider ());
var tfsVersionControlServer = tfsProjectCollection.GetService<VersionControlServer> ();
tfsVersionControlServer.CommitCheckin += TfsVersionControlServer_CommitCheckin;
这里的问题是,VersionControlServer 与 Visual Studio 使用的实例不同。因此,例如,如果我制作一个搁置集,则该事件将不会触发。只有当我用我在这里的实例以编程方式搁置时,我才会触发事件。
我的扩展程序工作正常,除了这个问题。我的扩展在启动时被初始化,并在 Visual Studio 启动期间订阅事件。现在,如果我创建 Shelveset,我希望触发 BeforeShelvePendingChange 事件。
提前致谢
【问题讨论】:
-
类似于this issue 的东西?我还纠结于如何获取正确的实例。
-
我想我们也有类似的问题。经过数小时的尝试和错误,我想出了一个有一些缺点的解决方案,但我会接受它们。我会在当天尽快/稍后发布我的解决方案。
-
这可能会非常好,谢谢!我被困在如何获得正确的实例让我多次执行某些操作。
标签: c# visual-studio tfs tfs-2015 visual-studio-extensions