0

在 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 文件,其中有一个名为 stub 宏的文件Test(),它什么也不做。该文件存在并且位于正确的位置。

第一次通过 aRuntimeBinderException被抛出excel.Run("Test");

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

紧接着,再次运行代码会导致提前抛出 RuntimeBinderException,在excel.Visible = false;

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

我检查了 2 台同事机器上完全相同的代码和设置,并且所有语句都正确执行,无一例外。

我怀疑 AutomationFactory 或 COM 对象甚至我的 VisualStudio 设置在幕后发生了一些事情,但我对它的了解不足,无法正确调试或检查什么。也许 DCOMCNFG 有问题?

任何想法表示赞赏。

谢谢,

4

0 回答 0