1

在某些机器上安装程序时,我遇到了一个非常烦人的问题,我开发了一个 C# 应用程序,一切正常,当然我在另一台机器上测试它没有问题,但是当我在我的客户端机器上安装它时,会出现以下问题:

System.Runtime.InteropServices.COMException (0x800A03EC):HRESULT 异常:System.RuntimeType.ForwardCallToInvokeMember 处的 0x800A03EC(字符串成员名称、BindingFlags 标志、对象目标、Int32 [] aWrapperTypes、MessageData 和 msgData)在 Microsoft.Office.Interop.Excel.Range .set__Default(Object RowIndex, Object ColumnIndex, Object ) at SchoolMgmt.certificate_succession.sum_operation()

由于程序与 Excel、Office Microsoft 通信(我尝试安装另一个 Office 版本但没有成功)。
我已经搜索了很多解决方案,但没有任何效果,因为它声称问题只是以下路径中的权限问题

C:\Windows\System32\config\SystemProfile

为什么程序在我的测试机器上运行顺利且成功,但在我的客户的机器上却没有,这真的让我发疯!
请有任何建议。

4

2 回答 2

2

经过数周又数周的搜索和挖掘地狱问题,我想通了!
这只是区域设置的问题!是的,我不知道为什么,但 Microsoft Office 就是这样工作的,控制面板中的区域设置应该是英语,而不是我从不同用户那里阅读的任何其他语言。
因此,如果您想在 C# 应用程序中使用 Microsoft Office,请确保您的区域设置为英语等!

于 2015-03-17T15:21:54.613 回答
0

我遇到了同样的问题,经过几次试验,我了解到某些已安装的 Excel (2013) 版本设置了与 Excel 2003 兼容的选项(常规选项) 。在这种情况下,新创建的文件只接受 255 列和 65.535 行。当我的应用程序处理数千列时,excel 正在生成错误。简单的解决方案是更改常规选项并将“保存的文件格式”设置为“ .xlsx ”而不是“.xls”

于 2017-03-30T09:59:46.133 回答