Я только что создал сборку и надстройку 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;
}
Но почему? В чем проблема ?
Заранее спасибо !!