我正在尝试调试用VB.Net编写的DLL。当外部程序启动时,它将加载DLL,并且一切运行正常...但是我在“本地”窗格中看不到类变量。它们显示为空白,如下所示。
此外,一些代码行会生成错误“当前位置没有可用的源代码”,但是我想我理解原因。每当它尝试进入任何Microsoft DLL的类成员时,它当然都不会包含这些信息。但是任何仅处理我编写的代码的行都可以正常工作。
这是Microsoft Access 2007的COM DLL加载项,但是我认为无论DLL的类型如何,问题都大致相同。使用Shared COM Addin向导开始,然后从那里进行自定义,并获得令人满意的结果……除了“本地”窗口中的不可见变量。
我是新编写和调试DLL的人;到现在为止,我只完成了EXE文件。我研究了MSDN,Google和Stack Overflow,这是在其他线程上询问的详细信息...
\bin\
文件夹中。我浏览了注册表,找到了对项目,DLL及其自定义UserControl的所有引用(自从项目创建CustomTaskPane以来,所有引用都指向\bin\
文件夹。
我在做什么错了?
我在做什么对呢?
我可以改善什么?
答案 0 :(得分:0)
好的,回答我自己的问题的一部分。我认为我已修复错误消息“当前位置没有可用的源代码”。在项目属性中,启用了“启用非托管代码调试”。
在禁用该选项的情况下,即使它遇到我没有代码的对象,我现在也可以无错误地逐步执行代码。调试器的行为也有所不同,但是我还没有将其固定下来。我确实阅读了托管和非托管代码之间的差异,并以混合组合的方式对其进行了调试,但是虽然我原则上了解,但实际上我还不了解。
不过,我的局部变量仍然为空。
答案 1 :(得分:0)
好的,在其他项目之间进行了几天的工作后,我得到了一个答案……。我认为解决方案和/或项目已损坏。我会尽我所能,希望对别人有帮助。
昨天,我在项目设置和“选项”>“调试”中进行了一次“单击所有内容”的马拉松会议,但没有帮助。在某个时候,我不再摆弄调试设置,而是继续编写代码,直到我累了回到家。
今天早晨,我有了新的想法,再次尝试,发现私有类变量现在都可见。而且我不知道为什么。此外,还有一个新问题:即时调试器提示不断弹出,甚至认为未在设置中启用它:
此外,当不应该使用“播放/停止/步进”工具栏按钮时,它们也会被禁用,但是相同项目的菜单选择仍可以正常工作。
我再次仔细检查了所有设置。我玩弄了所有东西,无法使本地类变量再次变得不可见,也无法使JIT对话框消失。
所以我...
在JIT提示后,我单击了继续(F5),然后关闭了MSAccess。执行停止后,一些IDE窗格(例如Explorer,Locals等)消失了,有些又飞到了屏幕上的随机位置。那时我决定可能是某些东西损坏了,并开始计划从头开始卸载/重新安装所有Visual Studio 2008,甚至可能从头开始新解决方案。
因此,在重新安装之前,我尝试从头开始创建一个新的解决方案,发现即使所有设置都与原始解决方案中的设置一样,所有设置都能正常工作。
所以在原始解决方案中,我...
所以...我想解决方案中捆绑了一些东西,其中之一是项目,IDE设置等等。我希望这可以帮助其他人。