C# 如何访问Visual Studio DTE加载项程序集
以下是我想做的:C# 如何访问Visual Studio DTE加载项程序集,c#,visual-studio-2010,reflection,envdte,C#,Visual Studio 2010,Reflection,Envdte,以下是我想做的: 创建加载Visual Studio DTE的可执行文件 加载的加载项的访问方法 下面是我的代码,大致如下所示 我遇到的问题是无法访问加载项的程序集。似乎conObjType的程序集是mscorlib-但我想访问Myaddin.dll。任何想法?任何第三方外接程序不得公开任何方法,除了实现外接程序接口(OnConnection等)所需的方法之外。它的方法可以是内部的(不是公共的),甚至可以是模糊的 如果是您的外接程序,更好的方法是外接程序提供执行操作的命令,并且给定您的外部DTE
我遇到的问题是无法访问加载项的程序集。似乎
conObjType
的程序集是mscorlib-但我想访问Myaddin.dll。任何想法?任何第三方外接程序不得公开任何方法,除了实现外接程序接口(OnConnection等)所需的方法之外。它的方法可以是内部的(不是公共的),甚至可以是模糊的
如果是您的外接程序,更好的方法是外接程序提供执行操作的命令,并且给定您的外部DTE实例,您可以调用DTE.ExecuteCommand(“MyAddIn.MyCommand”)
[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
}
...
}