今天,我的客户意识到我的情况很有趣。我敢肯定这很简单,但似乎我无法把手放在上面。从来没有遇到过这个问题,而且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
上设置了一个断点,然后运行。当我打开一个新工作簿时,我收到了消息,但断点没有触发。
我在笔记本电脑上测试了相同的代码,并且工作正常。
他和我尝试了什么
Tools | Options | Debugging | General require source files to exactly match the original version
应用
让我知道您是否还需要其他东西?
仅供参考:此问题已在Add-in Express forum上发布,我通常不发布,但似乎我的客户承受压力,必须在星期一早上交付此项目。
答案 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加载项构建的。