Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio 2017中项目工作模式的确定_Visual Studio_Visual Studio 2017_Vsix_Vs Extensibility - Fatal编程技术网

Visual studio Visual Studio 2017中项目工作模式的确定

Visual studio Visual Studio 2017中项目工作模式的确定,visual-studio,visual-studio-2017,vsix,vs-extensibility,Visual Studio,Visual Studio 2017,Vsix,Vs Extensibility,在Visual Studio 2017中,可以在“文件夹视图”模式下工作。这是打开文件夹(文件–打开–文件夹…)时运行的模式。您还可以使用“解决方案资源管理器”(从“解决方案视图”切换到“文件夹视图”)切换到它 是否可以通过编程方式确定(如果可以,那么如何确定)当前启用的模式 我看到了IVsSolutionEvents7界面,其中包含一些方法,例如在打开或关闭文件夹(File–Open–folder/Close folder)时调用这些方法,但没有找到任何有助于解决上述问题的方法 提前感谢您的帮

在Visual Studio 2017中,可以在“文件夹视图”模式下工作。这是打开文件夹(文件–打开–文件夹…)时运行的模式。您还可以使用“解决方案资源管理器”(从“解决方案视图”切换到“文件夹视图”)切换到它

是否可以通过编程方式确定(如果可以,那么如何确定)当前启用的模式

我看到了
IVsSolutionEvents7
界面,其中包含一些方法,例如在打开或关闭文件夹(File–Open–folder/Close folder)时调用这些方法,但没有找到任何有助于解决上述问题的方法

提前感谢您的帮助。

您可以在IVS解决方案参考中使用以下代码:

var solution = (IVsSolution)ServiceProvider.GetService(typeof(SVsSolution));

// __VSPROPID7 needs Microsoft.VisualStudio.Shell.Interop.15.0.DesignTime.dll nuget
// folderMode will be a boolean
solution.GetProperty((int)__VSPROPID7.VSPROPID_IsInOpenFolderMode, out object folderMode);

谢谢是否可以检测到“文件夹视图”和“解决方案视图”模式之间的切换?@Nightwarker-您可以将解决方案转换为IVsSolution7并使用其OpenFolder方法。也许,我还不够清楚。我的意思是我想跟踪用户从“文件夹视图”切换到“解决方案视图”的时刻。可能有这样的接口,其中定义了方法,在切换模式时正确调用这些方法。例如,在“IVsSolutionEvents7”中,有“OnAfterOpenFolder”和“OnBeforeCloseFolder”两种方法,它们在打开/关闭文件夹时调用,但在“SolutionExplorer”中切换模式时不调用。@Nightwarker-在OnAfterOpenSolution中,您可以使用所有其他IVsSolutionEvents,OnAfterCloseSolution。从“解决方案视图”模式切换到“文件夹视图”模式时,不会调用这些方法,反之亦然。