- PVSM.RU - https://www.pvsm.ru -

Различные профили Visual Studio и установка расширений к ним

Создание и запуск окружений

В большинстве случаев разработчикам не требуется работа Visual Studio в «песочнице». При этом песочница может быть достаточно большая и стабильная. Обычно все окружение и дополнения к студии находятся в единственном экземпляре. То, что студия запускается в нескольких инстансах не в счет. Окружение и настройки для них применяются одни и те же.

Однако, существует ряд задач, когда требуется получить «студию, которая словно только что установилась». Что это за задачи?

  • Тестирование дополнений для Visual Studio. Вы можете делать обзоры на дополнения, или хотите посмотреть стабильность дополнения не устанавливая его в свой рабочий экземпляр студии.
  • Разработка дополнений для Visual Studio. В этом случае все еще опаснее для разработки, так как дополнение с ошибками может надолго вывести студию из строя. Но в данном случае вы будете подстрахованы, так как для дебага студия будет запущена в «песочнице».
  • Работа с сильно различающимися настройками для нескольких проектов. Это может быть различные плагины, настройки окон, хоткеи и вообще все, что может быть настроено в студии.

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

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

Создать новый профиль студии весьма просто и делается это одной строкой. Эта же строка запускает созданный именованный профиль Visual Studio.

%PATH_TO_VS%devenv.exe /rootsuffix %NAME%

Например, можно создать экземпляр с именем Test. Тогда это будет выглядеть примерно следующим образом:

«C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEdevenv.exe» /rootsuffix Test

Создание нового именованного окружения занимает некоторое время и при первом запуске вы увидите процесс подготовки студии при первом запуске. После чего у вас будет VS без истории проектов, без дополнений. Фактически чистая студия. Для того, чтобы запустить только что созданное окружение, необходимо воспользоваться той же самой командной строкой.

«C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEdevenv.exe» /rootsuffix Test

Все настройки окружений будут содержаться в папке. Можно прямо так и вводить:

%LOCALAPPDATA%MicrosoftVisualStudio

А также в ветке рееста

HKCUSoftwareMicrosoftVisualStudio12.0ИмяПрофиля

На моем домашней системе есть 2 дополнительных окружения кроме «по умолчанию».

rootsuffix_01 [1]

Это:

  • 12.0 – окружение по умолчанию
  • Exp – кастомное
  • Roslyn – кастомное

Установка расширений

На этом можно было бы остановиться, но существует проблема, которая могла бы свести на нет, все преимущества независимых окружений. Эта проблема: Невозможность указать в какое окружение устанавливать VSIX пакет.

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

Для решения этой проблемы я нашел небольшой command-line инструмент, который позволяет установить VSIX в нужный профиль Visual Studio. Скачать его можно готовый [2] или в виде кода [3].
Использование инструмента достаточно простое. Запустить командную строку, указать путь до тулзы, указать версию студии, имя профиля, путь до vsix пакета:

Root-VSIX [<VS version>] <RootSuffix> <Path to VSIX>

Например:

C:ToolsRoot-VSIX.exe 12.0 Test c:VS12ExtensionsSomeExtension.vsix

Все готово!

Некоторой проблемой может являться идентификация запущенного профиля, так как его имя нигде не отображается в запущенной студии. Можно различать по пути из TaskManager или же попытаться найти или написать расширение для студии ;)

Автор: VioletTape

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/testirovanie/65128

Ссылки в тексте:

[1] Image: http://habrastorage.org/getpro/habr/post_images/728/7ce/97e/7287ce97ee99617bec722b6cc0d3f7ec.png

[2] готовый: https://github.com/SLaks/Root-VSIX/releases

[3] в виде кода: https://github.com/SLaks/Root-VSIX

[4] Источник: http://habrahabr.ru/post/230097/