我们在使用Trust In Broswer Silverlight 5应用程序中的AutomationFactory尝试自动化Excel时遇到了一个奇怪的问题。
此代码在Application_Startup中的UI线程上运行:
dynamic excel = AutomationFactory.CreateObject("Excel.Application");
excel.Visible = false;
dynamic workbooks = excel.workbooks;
workbooks.Open(@"C:\temp\test.xlsm");
excel.Run("Test");
注意:excel文件只是一个虚拟excel文件,其中包含一个名为Test()
的存根宏,它不执行任何操作。该文件存在并位于正确的位置。
RuntimeBinderException
第一次excel.Run("Test");
投掷<{1}}
'object' does not contain a definition for 'Run'
在此之后,再次运行代码会导致在excel.Visible = false;
'object' does not contain a definition for 'Visible'
我检查了两台同事机器上完全相同的代码和设置,所有语句都正确执行。
我怀疑AutomationFactory中的幕后或COM对象甚至我的VisualStudio设置都发生了一些事情,但我对它的正确调试或检查内容还不够了解。也许在DCOMCNFG中出现问题?
任何想法都表示赞赏。
谢谢,
丹