Различные профили 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.0\Common7\IDE\devenv.exe» /rootsuffix Test
Создание нового именованного окружения занимает некоторое время и при первом запуске вы увидите процесс подготовки студии при первом запуске. После чего у вас будет VS без истории проектов, без дополнений. Фактически чистая студия. Для того, чтобы запустить только что созданное окружение, необходимо воспользоваться той же самой командной строкой.
«C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe» /rootsuffix Test
Все настройки окружений будут содержаться в папке. Можно прямо так и вводить:
%LOCALAPPDATA%\Microsoft\VisualStudio
А также в ветке рееста
HKCU\Software\Microsoft\VisualStudio\12.0ИмяПрофиля
На моем домашней системе есть 2 дополнительных окружения кроме «по умолчанию».

Это:
12.0 — окружение по умолчанию Exp — кастомное Roslyn — кастомное На этом можно было бы остановиться, но существует проблема, которая могла бы свести на нет, все преимущества независимых окружений. Эта проблема: Невозможность указать в какое окружение устанавливать VSIX пакет.В смысле нет официального способа для сторонних пакетов. В тех, которые вы разрабатываете будут подправлены конфигурационные файлы для запуска в другом профиле. Пакеты расширений для студии не имеют каких-либо ключей, которые могут помочь в установке расширения в определенное именованное окружение. В процессе установки так же нет какого-либо выбора окружения. У вас не получится установить расширение перетащив его в окно студии. По умолчанию все устанавливается в основной экземпляр студии.
Для решения этой проблемы я нашел небольшой command-line инструмент, который позволяет установить VSIX в нужный профиль Visual Studio. Скачать его можно готовый или в виде кода.Использование инструмента достаточно простое. Запустить командную строку, указать путь до тулзы, указать версию студии, имя профиля, путь до vsix пакета:
Root-VSIX [
Например:
C:\Tools\Root-VSIX.exe 12.0 Test c:\VS12\Extensions\SomeExtension.vsix
Все готово!
Некоторой проблемой может являться идентификация запущенного профиля, так как его имя нигде не отображается в запущенной студии. Можно различать по пути из TaskManager или же попытаться найти или написать расширение для студии ;)
