繁体   English   中英

如何访问Visual Studio DTE外接程序程序集

[英]How to access a Visual Studio DTE Addin assembly

这是我想要做的:

  1. 创建一个加载Visual Studio DTE的可执行文件
  2. 加载的外接程序的访问方法

这是我的代码, 此博客对此进行了大致介绍。

[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。 有任何想法吗?

除了实现外接程序接口(OnConnection等)所需的方法外,任何第三方插件都不能公开任何方法。 它的方法可以是内部的(不公开),甚至可以被混淆。

如果它是您的外接程序,则更好的方法是该外接程序提供执行操作的命令,并在给定外部DTE实例的情况下,可以调用DTE.ExecuteCommand(“ MyAddIn.MyCommand”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM