断点未在 VSTO 加载项中触发

Breakpoints not triggering in VSTO Add-in

今天我的客户告诉我一个有趣的情况。我确信这很简单,但似乎我无法理解它。从未遇到过这个问题,Google 帮助不大。

问题

在我客户的笔记本电脑上,加载项是使用 Add-in Express™ for Microsoft® Office and .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. Uninstalling/ReInstalling 加载项快递
  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 Pro
  2. MS Office:2016 专业增强版 2016

如果您还需要什么,请告诉我?

仅供参考:这已交叉发布在 Add-in Express forum 我通常不交叉发布,但似乎我的客户压力很大,必须在星期一早上交付这个项目。

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

我想 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 插件构建的。