Проблема надстройки Visual Studio 2010 - PullRequest
0 голосов
/ 11 августа 2011

Я только что создал сборку и надстройку Visual Studio следующим образом:

Сначала сборка

  • Файл => Новый проект
  • Новая библиотека классов

После того как я изменил содержимое файла "Class1.cs" на

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
    public class Class1
    {
        public void Test()
        {
            Console.WriteLine("Wohooo!");
        }
    }
}

А теперь надстройка

  • Файл => Новый проект
  • Надстройка Visual Studio
  • Щелчок по мастеру

После того как я изменил содержимое файла «Connect.cs» на:

public class Connect : IDTExtensibility2, IDTCommandTarget
{
...
    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
    {
    // Adding a button to thet tools menu
// i can provide the source if needed
    }           

    public void QueryStatus(string commandName, vsCommandStatusTextWanted neededText, ref vsCommandStatus status, ref object commandText)
    {
        if (neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone)
        {
            status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported |
                     vsCommandStatus.vsCommandStatusEnabled;
        }
    }

Если я вызываю новый класс из метода Exec, ничего не происходит. (Нет точки прерывания отладки срабатывает)

    public void Exec(string CmdName, vsCommandExecOption ExecuteOption, ref object VariantIn, ref object VariantOut, ref bool Handled)
    {
        Action action = GetAction(CmdName);

        if (CmdName == "MyAddin2.Connect.SampleAddin2")
        {
            new ClassLibrary1.Class1().Test();             
            Console.WriteLine("");
        }

        Handled = true;
    }

если нет, то это работает!

    public void Exec(string CmdName, vsCommandExecOption ExecuteOption, ref object VariantIn, ref object VariantOut, ref bool Handled)
    {
        Action action = GetAction(CmdName);

        if (CmdName == "MyAddin2.Connect.SampleAddin2")
        {
            // new ClassLibrary1.Class1().Test();             
            Console.WriteLine("");
        }

        Handled = true;
    }

Но почему? В чем проблема ?

Заранее спасибо !!

1 Ответ

0 голосов
/ 03 сентября 2011

Проверьте тег сборки в файле надстройки «Для тестирования».Проверьте папку, на которую он указывает, и если эта папка содержит «ClassLibrary1.dll».У меня была похожая (или идентичная) проблема здесь .

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