Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
外部C#程序无法调用vsto COMAddin对象方法,但它可以在调试器内部调用_C#_Dynamic_Com_Vsto_Office Interop - Fatal编程技术网

外部C#程序无法调用vsto COMAddin对象方法,但它可以在调试器内部调用

外部C#程序无法调用vsto COMAddin对象方法,但它可以在调试器内部调用,c#,dynamic,com,vsto,office-interop,C#,Dynamic,Com,Vsto,Office Interop,我有这些简单的代码 static void Main(string[] args) { object addInName = "MyAddin"; Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Core.COMAddIn ad

我有这些简单的代码

static void Main(string[] args)
        {
            object addInName = "MyAddin";
            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Core.COMAddIn addin = app.COMAddIns.Item(ref addInName); 

            app.Visible = false;
            var myObject = addin.Object;
            var vvv = myObject.someMethod();
        }
当运行它时,它在第行someMethod抛出NullReferenceException时失败。但是myObject不是空的

如果在该行上放置断点,将鼠标光标移到myObject上,单击扩展的动态视图,然后单击一些界面视图。那就行了

COM对象虽然不是null,但似乎还没有准备好/初始化。但若我从调试器断点检查它的内部状态,我会以某种方式强制它初始化

有什么问题


加载项COM扩展了StandardOleMarshallObject。请尝试使用后期绑定技术(在.Net中反射)。有关更多信息,请参阅


这两个应用程序是否在相同的安全上下文中运行?或者您是否以管理员权限(以管理员身份运行)运行它们中的任何一个?

您是否看到了这篇MSDN文章中的信息:这个答案看起来更像是一个注释。这并没有提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-我建议使用后期绑定技术,这可能会有所帮助。在大多数情况下,这有助于避免此类问题。