3

今天我的客户告诉我一个有趣的情况。我确信这很简单,但似乎我无法解决。从来没有遇到过这个问题,谷歌也没有太大帮助。

问题

在我客户的笔记本电脑上,插件是使用Add-in Express™ for Microsoft® Office 和 .net创建的。从 VS 运行加载项时,不会触发断点。我通过teamviewer登录。我们创建了一个新的测试项目(插件)并添加了这个简单的代码。

Private Sub AdxExcelAppEvents1_WorkbookOpen(sender As Object, hostObj As Object) Handles _
AdxExcelAppEvents1.WorkbookOpen
    MessageBox.Show ("Hello World")
End Sub

我放了一个断点AdxExcelAppEvents1_WorkbookOpen然后跑了。当我打开一个新工作簿时收到消息,但断点没有触发。

我在笔记本电脑上测试了相同的代码,它工作得很好。

他和我尝试了什么

  1. 注销、清理 + 重建、注册
  2. 手动清理 Debug 文件夹
  3. 修复 Add-In Express
  4. 卸载/重新安装 Add-In Express
  5. 在框架 4.5 和 4.6、4.7.1 之间跳转
  6. 切换Tools | Options | Debugging | General require source files to exactly match the original version
  7. 切换解决方案平台 (x86|64|AnyCPU)

应用

  1. Visual Studio 版本:2019 专业版
  2. MS Office:2016 Professional Plu 2016

需要帮助请叫我?

仅供参考:这已在Add-in Express 论坛上交叉发布,我通常不交叉发布,但似乎我的客户面临压力,必须在周一早上交付这个项目。

4

2 回答 2

2

您可以使用Debugger.Break方法并观察您是否获得System.Diagnostics了有关合理未处理异常的更多信息。在这种情况下,我们得到了异常wkernelbase.pdb not loaded,Siddharth 发现它可以通过选择 : 来修复Tools->Options->Debugging->Symbols->Select "Microsoft Symbol Servers"

于 2020-03-22T10:50:26.170 回答
0

我想 Office 文件夹中有一个{excel}.exe.config文件。.config 要求所有加载项都使用 .NET 2.0(3.0、3.5)。

这可以解释问题:您使用 .NET 2.0 (3.0, 3.5) 而调试器希望使用 .NET 4.0 (4.X)。

是的,Add-in Express 是围绕 COM 插件技术构建的,而不是 VSTO 插件。

于 2020-03-23T06:38:23.107 回答