Microsoft.Office.Tools.Ribbon.RibbonBase.Dispose上的System.NullReferenceException(布尔值)

时间:2019-04-01 14:16:05

标签: c# vsto office-interop

我创建了我的第一个Excel VSTO加载项。在Visual Studio中一切正常。我发布了我的加载项,安装在其他计算机上,但是Excel在加载过程中崩溃了。仅显示没有响应的对话框。

  • 我正在尝试为2013年及更高版本创建加载项
  • 我将VSTO_SUPPRESSDISPLAYALERTS设置为0->未显示警报
  • 我尝试将VSTO_LOGALERTS设置为1->无日志
  • 我检查了寄存器清单值,路径正确
  • 我试图将清单值修改为错误的一个->日志中写入了有关未找到文件的信息
  • 所以我知道VSTO_LOGALERTS有效,但不适用于我的情况
  • 我也选中了此thread
  • 我在事件日志中找到的唯一信息是:
  

应用程序:EXCEL.EXE       框架版本:v4.0.30319       说明:由于未处理的异常,进程已终止。       异常信息:System.NullReferenceException          在Microsoft.Office.Tools.Ribbon.RibbonBase.Dispose(布尔)          在ExcelTE.RibbonTE.Dispose(布尔)          在System.ComponentModel.Component.Finalize()

在先决条件中,我已经检查了以下选项:

prerequisites

我还尝试为Office运行时手动安装.NET Framework 4.7.2和Visual Studio Tools,但没有成功。

还有什么我可以检查的想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。

System.NullReferenceException对此有点误导。

我创建了一个项目,然后添加:

  • 丝带
  • 在功能区上,我添加了按钮
  • 对于按钮,我已经创建了点击事件处理程序

我在事件处理程序中有自定义逻辑,它使用的是3rd party库。该库要求用户文档中具有Resources / someSettingsFile.settings文件夹。

创建MyRibbon类时,我正在从第三方库初始化对象。因此,这会在加载excel时引发异常。

我忘记了在开发过程中将Resources文件夹复制到Documents,而当我将Add-In发布给其他用户时,他们根本没有第3库所需的文件。