В моем расширение Visual Studio, я могу закрыть окно в IDE, делая это:VSIX расширение - закрытие окна, кажется, не имеют vsWindowKind константы
var dte = (DTE)GetService(typeof(EnvDTE.DTE));
dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Close();
(Это закрывает окно вывода)
Есть окна, у которых нет константы «vsWindowKind» (все они перечислены здесь: https://msdn.microsoft.com/en-us/library/envdte.constants.aspx) - вы все равно можете закрыть их, если знаете GUID. Например:
dte.Windows.Item("{131369F2-062D-44A2-8671-91FF31EFB4F4}").Close();
закрывает окно Team Explorer (я обнаружил, что GUID из другого SO вопрос:.? How do I run a TFS Work Item Query with Visual Studio Macros
Мой вопрос, где я могу найти полный список IDE окна GUIDs
EDIT: так для VS2015 и ниже я могу найти список окон инструментов в реестре, выполнив следующие действия:
var keyname = @"Software\Microsoft\VisualStudio\14.0_Config\ToolWindows";
using (var key = Registry.CurrentUser.OpenSubKey(keyname))
{
foreach (var subkey in key.GetSubKeyNames())
{
var fullkey = @"HKEY_CURRENT_USER\" + keyname + "\\" + subkey;
var name = (string)Registry.GetValue(fullkey, "Name", "");
if (!string.IsNullOrWhiteSpace(name))
{
Console.WriteLine($"{subkey} {name}");
}
}
}
Однако нет такого Entri es для VS2017 (возможно, потому, что он позволяет устанавливать несколько копий на одном ПК).
В любом случае, документальный список по-прежнему отсутствует!