Единый макет для редактирования и отладки в Visual Studio - PullRequest
45 голосов
/ 10 апреля 2011

В Visual Studio 2008 «Начать отладку» переключает Visual Studio в другой макет.Как я могу заставить Visual Studio постоянно использовать один макет?

Я мог бы попытаться расположить свои окна как в обычном, так и в «Отладочном» режимах как можно более одинаково.Тем не менее, i) Visual Studio все равно будет выполнять видимую перерисовку, и ii) мне придется поддерживать макеты синхронизированными вручную.

Обновление: похоже, правильными являются термины «Представление дизайна» и «Представление отладки».Согласно Расположение окон: Четыре режима «В настоящее время нельзя сказать, что Visual Studio будет использовать одно состояние для всех режимов».Это правда?

Ответы [ 3 ]

20 голосов
/ 25 мая 2011

Как уже отмечали другие, вы не можете использовать одну группу настроек для управления как проектным, так и отладочным представлениями. Visual Studio не позволяет получить максимальную отдачу от настроек размещения окон, но подход, который я использую для управления макетами, может помочь.

Вместо того, чтобы часто настраивать размещение окон вручную, постарайтесь придумать фиксированное количество различных видов, с которыми вы хотите работать. У Eclipse есть перспективы, расположение окон, между которыми вы можете переключаться. Подумайте о Visual Studio таким образом. Например, я использую два макета в Visual Studio: один для использования двух мониторов, когда я сижу за своей физической рабочей станцией, другой для одного монитора, когда я работаю удаленно. Если вы можете ограничиться использованием группы макетов, которая имеет смысл для вас, без ручной настройки окон, вы можете сделать дизайн и отладку размещения окон одинаковыми для каждого макета.

Тем не менее, переключение между макетами является болезненным с Visual Studio из коробки. Вы должны пойти в Инструменты-> Настройки импорта и экспорта и выбрать макет вручную. Для переключения раскладок на моей рабочей станции требуется более пяти щелчков мыши, а иногда и 15 секунд. Мы можем сделать намного лучше!

  1. Сохраните положения окон, которые вы хотите для каждого макета, в файлы настроек
  2. Создать макрос для загрузки каждого файла настроек
  3. Привязка макросов к сочетаниям клавиш или к кнопкам панели инструментов

Сохранение позиций окна в файле настроек

Расположите окна так, как вы хотите, для определенной компоновки. Visual Studio сохраняет местоположение практически для каждого окна (например, Solution Explorer, Output, Find and Replace), поэтому будьте внимательны. Visual Studio сохраняет макеты проектирования и отладки в одном файле, поэтому окна в обоих видах располагаются.

Перейдите в Инструменты-> Настройки импорта и экспорта. Выберите «Экспорт выбранных настроек среды» и нажмите «Далее».
В следующем диалоговом окне вам будет предложено выбрать настройки для экспорта. Снимите флажок со всех настроек, кроме «Общие настройки» / «Макеты окон», чтобы были сохранены только места размещения окон, как на этих снимках экрана (я не могу развернуть окно, поэтому здесь два снимка одного и того же диалога):

Choose settings to export

Choose settings to export

Введите имя для этого файла настроек и сохраните его. Повторяйте, пока не получите файл настроек для каждого макета. Количество файлов настроек не ограничено.

Создание макроса для загрузки каждого файла настроек

Перейдите в Инструменты-> Макросы-> Проводник макросов, чтобы показать свои макросы. Уже должен быть макропроект под названием MyMacros. Создайте пустой макропроект, если ни один не виден. Дважды щелкните любой модуль в любом из этих проектов, чтобы открыть редактор макросов.

Введите это в редактор. Вы хотите одну основную подпрограмму, которая берет путь к файлу настроек и загружает файл, и одну подпрограмму для каждого отдельного файла, который вызывает основную подпрограмму. Если вы сохраните свои файлы настроек в той же папке, вы можете указать, что подпрограммы для каждого файла передают только имя файла, а не весь путь.

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module Module1

    Private RootFolder As String = "C:\Path\To\Folder\With\Settings\Files\"

    Private Sub ImportSettingsFile(ByVal FileName As String)
        FileName = IO.Path.Combine(RootFolder, FileName & ".vssettings")
        DTE.ExecuteCommand("Tools.ImportandExportSettings", "-import:""" & FileName & """")
    End Sub

    'Corresponds to file layoutA.settings    
    Public Sub ImportLayoutA()
        ImportSettingsFile("layoutA")
    End Sub

    'Corresponds to file layoutB.settings
    Public Sub ImportLayoutB()
        ImportSettingsFile("layoutB")
    End Sub

    'Repeat for each settings file

End Module

Закройте редактор макросов и вернитесь в Visual Studio. Вы сделали! Запуск любого из этих макросов автоматически загрузит файлы настроек. Вы можете дважды щелкнуть любой из подпрограмм в Macro Explorer, чтобы запустить их. Если вы постоянно отображаете Macro Explorer, этого может быть достаточно, но если вы не хотите или не хотите нажимать макросы для их запуска, мы можем сделать еще лучше ...

Привязка макросов к сочетаниям клавиш или к кнопкам панели инструментов

Перейдите в Инструменты-> Параметры-> Среда-> Клавиатура. Это окно позволяет изменить любые привязки клавиатуры. Введите «Макрос» без кавычек в команды Показать, содержащие текстовое поле. Это покажет макросы, которые вы создали. Выберите любой макрос, щелкните в текстовом поле «Сочетание клавиш» и введите сочетание клавиш, которое вы хотите использовать для запуска макроса. Нажмите Назначить, затем ОК. Теперь вы можете использовать эту клавиатуру для загрузки файла настроек.

enter image description here

В качестве альтернативы, вы можете использовать кнопку панели инструментов вместо или в дополнение к привязке клавиатуры.Перейдите в Инструменты-> Настройка.Перейдите на вкладку «Команды», выберите «Панель инструментов» и выберите панель инструментов, к которой вы хотите добавить кнопку («Стандарт» - главная панель инструментов).Нажмите «Добавить команду», выберите категорию «Макросы», выберите макрос, для которого вы хотите добавить кнопку, и нажмите «ОК».У вас будет новая кнопка на панели инструментов, которая загружает макет окна из этого макроса.

enter image description here

enter image description here

Имейте в виду, что сочетания клавиш и кнопки панели инструментов сами по себе являются настройками.Если вы импортируете файл настроек, который перезаписывает любой из них, вам придется повторить этот последний шаг.Файлы настроек размещения окон не будут перезаписывать эти значения, потому что вы только экспортировали расположения окон.Рекомендуется периодически экспортировать и создавать резервные копии всех настроек, а не только настроек окна, на случай, если что-то подобное произойдет, и вы захотите восстановить не оконные настройки.

13 голосов
/ 10 апреля 2011

Нет, это невозможно. веб-сайт, который вы нашли , действительно точен:

В Visual Studio существует четыре различных режима размещения окон:

  • Представление дизайна - это то, что вы видите при запуске Visual Studio. Это то, что большинство людей называют «нормальным» представлением.
  • Представление отладки - это представление, которое вы получаете при входе в режим отладки, например, когда вы шагаете по коду
  • Полноэкранный режим - вид, который появляется при переходе в режим просмотра -> Полноэкранный режим ( Сдвиг + Alt + Ввод ) .
  • Просмотр файла - менее известное представление, которое вы можете получить при открытии файла в DevEnv.eve

Следует помнить, что окна инструментов и настройки панели команд сохраняются отдельно для каждого состояния. В настоящее время нельзя сказать Visual Studio использовать одно состояние для всех режимов. Кроме того, когда вы выключаете Visual Studio в любом состоянии, все четыре состояния сохраняются.

Очень странно, что вы захотите использовать одинаковое расположение окон для всех четырех режимов. Те же самые окна, которые полезны во время разработки, вряд ли когда-либо пригодятся во время отладки, и наоборот.
Например, в представлении «Отладка» я скрываю окна «Панель инструментов», «Структура документа» и «Диспетчер свойств». Затем я добавляю чрезвычайно полезные окна «Стек вызовов», «Автомобили», «Местные», «Процессы», «Модули» и «Точки останова». Ни одна из последних панелей не была бы мне полезна удаленно в режиме разработки, поэтому я не хочу, чтобы они занимали место на экране. Но они бесценны в режиме отладки, поэтому я хочу, чтобы они появились. Я также изменяю размеры окон в двух разных режимах в зависимости от их относительной важности (например, окна свойств).

Если вы все еще думаете, что два вида должны иметь одинаковую компоновку окон, лучшее, что вы можете сделать, - это переставить окна вручную, чтобы получить одинаковую компоновку в обоих режимах. Я также рекомендую экспортировать настройки макета окна (Инструменты -> Параметры импорта и экспорта), чтобы у вас была свежая копия, к которой можно вернуться в случае аварии. Я сохраняю файлы настроек, содержащие мои предпочтительные настройки расположения окон для конфигурации с одним монитором (ноутбуком), двумя мониторами и тремя мониторами.

2 голосов
/ 30 января 2014

Я думаю, что ваш вопрос был "Как я могу использовать одинаковые настройки для обоих режимов?" Я прав? Хотя @Chris дал отличный тезис о том, как выполнять автоматические вещи, я хотел бы отметить, что для любого, кто найдет этот вопрос, существует простой способ получить одинаковые настройки окна для режимов разработки и отладки.

Экспорт настроек:

  1. Выберите «Общие параметры» / «Макеты окон» (в VS 2013) и сохраните файл.
  2. Открыть файл в редакторе XML (или как угодно ... это файл XML)
  3. Найти / UserSettings / Category / Design / WindowProfile и скопировать весь узел. - Это предполагает, что ваше представление «Дизайн» - это то, которое вы хотите использовать в обоих режимах.
  4. Найдите / UserSettings / Category / Debug / WindowProfile и замените его на тот, который вы скопировали из Design.
  5. Сохранить и повторно импортировать.

У меня есть один из этих файлов настроек для дома, удаленного офиса и офиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...