我最近使用VS2010在C#中开发了一个Excel COM-addin,它使用Web引用到远程Web服务并向服务发送数据和从服务发送数据。根据要求完成此操作后,我按照here步骤将其安装在多台客户端计算机上。
按照规范构建msi后,我在外部计算机上安装了加载项。安装成功完成后,我尝试启动excel并崩溃。经过进一步调查,我设法找到了包含这段代码的Windows错误报告(WERInternalMetadata.xml)文件。
<ProblemSignatures>
<EventType>CLR20r3</EventType>
<Parameter0>excel.exe</Parameter0>
<Parameter1>14.0.6126.5003</Parameter1>
<Parameter2>505b0834</Parameter2>
<Parameter3>AddInTestExcel2007</Parameter3>
<Parameter4>1.0.0.0</Parameter4>
<Parameter5>53304e03</Parameter5>
<Parameter6>42</Parameter6>
<Parameter7>16</Parameter7>
<Parameter8>System.NullReferenceException</Parameter8>
</ProblemSignatures>
当我在Visual Studio上调试我的加载项时,我没有得到NullReference异常。除此之外,我没有关于导致excel崩溃的原因的其他信息。有人可以帮我解释一下吗?
编辑 - 添加启动代码
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
答案 0 :(得分:0)
通常,出于以下原因,Excel加载项可能会因启动Excel而崩溃:
您可以检查一下您的启动代码,并通过将其包装在通用的try / catch块中来查找可能的异常吗?
您也可以在此处发布代码段,我们也可以帮助识别。
P.S。一般建议是将启动代码保持在最小值(如果不是零)。这是因为如果加载时间超过特定值,现代版本的office应用程序(例如outlook)实际上会禁用加载项。