在Visual Studio扩展中,如何响应"打开文件夹"以及"打开解决方案"?

Ric*_*dle 5 visual-studio vs-extensibility vsix visual-studio-2017

我的Visual Studio扩展响应了解决方案的开放IVsSolutionEvents.OnAfterOpenSolution().

Visual Studio 2017引入了"Open Folder"作为"Open Solution"的替代方案,但是当您打开文件夹时,IVsSolutionEvents.OnAfterOpenSolution()不会触发.(也没有任何其他事件IVsSolutionEvents,也没有任何事件IVsSolutionLoadEvents.)

我的扩展如何知道何时打开文件夹而不是解决方案?

Sim*_*ier 6

您必须使用为Visual Studio 2017添加的IVsSolutionEvents7.OnAfterOpenFolder方法.

通知侦听客户端文件夹已打开.

public void OnAfterOpenFolder (string folderPath);
Run Code Online (Sandbox Code Playgroud)

由于这是一个本机COM接口,您还必须确保实现类是COM可见的(通过可以在程序集,类,基类等上设置的ComVisible属性).