AutomationFactory:相同的代码在一台机器上产生RuntimeBinderException,并在另一台机器上按预期运行

时间:2014-06-16 18:58:28

标签: silverlight com comautomationfactory

我们在使用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;

之前抛出RuntimeBinderException

'object' does not contain a definition for 'Visible'

我检查了两台同事机器上完全相同的代码和设置,所有语句都正确执行。

我怀疑AutomationFactory中的幕后或COM对象甚至我的VisualStudio设置都发生了一些事情,但我对它的正确调试或检查内容还不够了解。也许在DCOMCNFG中出现问题?

任何想法都表示赞赏。

谢谢,

0 个答案:

没有答案