[英]How to access a Visual Studio DTE Addin assembly
这是我想要做的:
这是我的代码, 此博客对此进行了大致介绍。
[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.