2015-09-13 3 views
1

Вот что я пытаюсь сделать:Как получить доступ к Визуальная сборки студии DTE Addin

  1. Создание исполняемого файла, который загружает Visual Studio DTE
  2. методы доступа надстройку, которая загружается

Это мой код, за которым следуют менее this blog.

[STAThread] 
static void Main(string[] args) 
{ 
    EnvDTE80.DTE2 dte; 
    object obj = null; 
    System.Type t = null; 

    MessageFilter.Register(); 
    // Get the ProgID for DTE 10.0. 
    t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true); 
    obj = System.Activator.CreateInstance(t, true); 

    var addin = GetAddInByProgID(dte, "MyAddin"); 
    if (addin != null) 
    { 
     addin.Connected = true; 
     var connectObj = addin.Object; 
     var conObjType = connectObj.GetType(); 
     var methods = conObjType.GetMethods(); // mscorlib methods 
     var asm = conObjType.Assembly; // is mscorlib 
    } 
    ... 
} 

Проблема, с которой я сталкиваюсь, я не могу получить доступ к сборке Addin. Похоже, что сборка conObjType - mscorlib, но я хочу получить доступ к Myaddin.dll. Есть идеи?

ответ

1

Любая сторонняя надстройка может не выставлять какой-либо метод вообще, кроме тех, которые необходимы для реализации интерфейса надстройки (OnConnection и т. Д.). Его методы могут быть внутренними (не общедоступными) или даже могут быть запутаны.

Если это ваша надстройка, лучшим подходом было бы то, что надстройка предоставляет команды для выполнения действий и с учетом вашего внешнего экземпляра DTE вы можете вызвать DTE.ExecuteCommand («MyAddIn.MyCommand»).

 Смежные вопросы

  • Нет связанных вопросов^_^