Надстройка Visual Studio не отображается

Я создал очень простую надстройку Visual Studio, как в этой статье JP Booodhoo.

http://codebetter.com/jpboodhoo/2007/09/04/macro-to-aid-bdd-test-naming-style/

Надстройка работает в режиме отладки, поэтому, если я нажму F5 в добавлении решения и открою решение, надстройка отобразится в инструментах. Однако он не отображается, если не выполняется отладка. то есть после того, как я развернул надстройку, закрыл и снова открыл свое решение.

Я что-то упускаю?

Что касается развертывания, я выполнил шаги развертывания, описанные в этой статье, и развернул его в папку C:\Users[ваше имя пользователя]\Documents\Visual Studio 2012\Addins.

Альтернатива макросам в Visual Studio 2012

public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
        {
            handled = false;
            if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if(commandName == "KinghamExtensions.Connect.KinghamExtensions")
                {


                    var selection = (TextSelection)(_applicationObject.ActiveDocument.Selection);
                    selection.SelectLine();
                    if (selection.Text == "") return;

                    var prefix = "public void ";
                    var index = selection.Text.IndexOf(prefix);
                    prefix = selection.Text.Substring(0, index) + prefix;
                    var description = selection.Text.Replace(prefix, String.Empty);

                    selection.Text = prefix + description.Replace(" ", "_").Replace("'", "_");
                    selection.LineDown();
                    selection.EndOfLine();
                    handled = true;
                }
            }
        }

Как я уже сказал, код работает при запуске надстройки из vs в отладке, но не отображается в меню инструментов.

Кроме того, он не отображается в параметрах клавиатуры, как это делает надстройка Git Extensions, что означает, что я не могу назначить привязку клавиш.

Есть предположения?


person Tim Butterfield    schedule 23.09.2013    source источник


Ответы (1)


Трудно ответить по предоставленной вами информации, но сначала вы должны проверить следующее:

Ваша надстройка должна появиться в Инструменты>Диспетчер надстроек...

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

Если это не так и вы получаете сообщение об ошибке, нажмите «Нет», иначе Studio переименует развернутый файл .AddIn. Вы должны проверить, находится ли ваша сборка выпуска в месте, на которое ссылается элемент Assembly, например: <Assembly>C:\Users[your user name]\Documents\Visual Studio 2012\Projects\MyAddin1\MyAddin1\bin\MyAddin1.dll</Assembly>
в файле .AddIn, развернутом Visual Studio, в папку AddIn, которую вы упомянули в своем вопросе.

Если это так, и ошибка повторяется, вы должны добавить журнал в свою надстройку (подойдет Windows MessageBox) и поместить его в метод OnConnection. Ошибка может появиться либо из-за того, что OnConnection вызывает исключение, когда IDE пытается его загрузить, либо элемент FullClassName в файле надстройки ссылается на имя, отличное от вашего класса Connection.

Если вы не получаете ошибок и ваш OnConnection работает правильно, это может быть исключение, когда ваш код добавляет вашу команду, - если вы делаете то же самое, что и в сгенерированном шаблоне надстройки в блоке try/catch- и вам нужно решить его.

person Ursegor    schedule 23.12.2013