Подтвердить что ты не робот

Вставьте новый GUID в Visual Studio 2012

Можно ли создать фрагмент кода или что-то подобное для автоматизации процесса генерации и вставки GUID в текстовый редактор в Visual Studio 2012? Мне часто нужно генерировать новые GUID (например, установщик WiX, а также собственную внутреннюю структуру).

Я использовал макрос для выполнения этого задания, создания нового GUID, а затем вставки его в текущий ActiveDocument. Я бы привязал макрос к Shift-Ctrl G, чтобы я мог быстро вставить новый идентификатор без необходимости запуска инструмента Create Guid и копирования оттуда.

Теперь из Visual Studio 2012 была удалена макрофункция, поэтому мне нужен альтернативный метод, я бы предположил, что это возможно сделать с расширением, но я не знаком с разработкой расширений, и этот подход будет казаться немного тяжелым!

Любые предложения будут оценены, если не получится, тогда будет указана указатель на любую информацию о том, какое расширение потребуется для взаимодействия с текстовым окном и вставить текст. Затем я мог бы сделать расширение и опубликовать его в галерее Visual Studio.

Спасибо, Энтони

Изменить для добавления - любое предлагаемое решение должно быть "инициировано" из сочетания клавиш. Как я уже говорил выше, я привязал макрос к Ctrl Shift G, потому что его легко запомнить и нажимать при написании кода.

4b9b3361

Ответ 1

Вы можете написать расширение Visual Studio 2012, чтобы выполнить это!
Если вы ранее не писали надстройку, это просто, чтобы вы начали!

Вот шаги для создания этого типа надстройки:

  • Создайте Новый проект в Visual Studio 2012
  • Выберите Шаблоны Другие типы проектов Расширяемость → Надстройка Visual Studio
  • Назовите свой проект, нажмите "ОК".
  • Следуйте инструкциям мастера надстройки. При появлении запроса установите флажок "Да, создайте пункт меню" Инструменты "." Необязательно, я также проверяю: "Моя надстройка никогда не будет устанавливать модальный интерфейс..."
  • Завершите работу мастера и выполните следующий код в Exec (...)

    public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
    {
        handled = false;
        if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
        {
            if (commandName == this.GetType().Namespace + ".Connect." + this.GetType().Namespace)
            {
                if (_applicationObject.ActiveDocument != null)
                {
                    TextSelection objSel = (EnvDTE.TextSelection)(_applicationObject.ActiveDocument.Selection);
    
                    objSel.Insert(Guid.NewGuid().ToString());
                }
    
                handled = true;
                return;
            }
        }
    }
    
  • Создайте проект и разверните AddInName.dll, AddInName.AddIn и AddInName.xml в c:\users\username\documents\Visual Studio 2012\Addins. [Если папка Addins не существует, создайте ее]

  • В Visual Studio 2012 под Сервис Addin Manager установите флажок слева от AddInName.
  • Перезагрузка Visual Studio 2012
  • Теперь вы должны увидеть AddInName, указанный в разделе "Инструменты". [возможно, с смайликом!]
  • Когда вы нажимаете на это, он должен вставить новый GUID в местоположение курсора.
  • Сопоставьте это с горячей клавишей, перейдя к Инструменты Параметры Среда Клавиатура, найдите AddInName и привяжите к нему горячую клавишу.

Voila! Генерация GUID горячей клавиши и немного надстройки Visual Studio знают, как это сделать.:)

Ответ 2

ReSharper позволяет вставить новый guid, набрав "nguid" и нажав вкладку.

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

Ответ 3

My Расширение SCLAssist имеет эту функцию. Вы можете привязать "Вставить GUID" к сопоставлению клавиш. SCLAssist является бесплатным.

Ответ 4

Похоже, что они вернули его - в VS 2015 (я использую версию Community) существует опция Сервис > Создать GUID.