VSTO加载项中未触发断点

时间:2020-03-21 17:25:34

标签: excel vb.net vsto addin-express

今天,我的客户意识到我的情况很有趣。我敢肯定这很简单,但似乎我无法把手放在上面。从来没有遇到过这个问题,而且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. 卸载/重新安装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 Pro
  2. 微软Office:2016 Professional Plu 2016

让我知道您是否还需要其他东西?

仅供参考:此问题已在Add-in Express forum上发布,我通常不发布,但似乎我的客户承受压力,必须在星期一早上交付此项目。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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加载项构建的。