【发布时间】:2011-01-04 05:50:34
【问题描述】:
我想知道是否有办法在 Visual Studio 2008 中调试代码时完全锁定我的代码。作为 64 位应用程序运行时,代码文档会自动锁定,我非常喜欢;但是,我的大部分编码都是为 32 位的 Excel 制作插件。结果是,即使我以“AnyCPU”为目标,VS 主机也知道它在 32 位进程中运行,因此,当代码运行在 Visual 中时,源代码不会被锁定工作室。
我可以通过转到工具 > 选项 > 调试 > 编辑并继续,然后取消选中“启用编辑并继续”复选框来关闭编辑并继续。然而,这并没有完全锁定代码。这确实会阻止代码中的任何编辑在当前运行中执行,但不会阻止鼠标单击或击键实际更改代码。
同样,在使用 64 位应用程序时不会发生这种情况——代码完全锁定。我非常喜欢将代码完全锁定,至少有两个原因:
在调试时我可能会不小心按到某个键或类似的东西,我绝对不想这样做。这很少见,但这是一个问题。
我的许多自动化测试通过 SendKeys 驱动用户界面。但是,当使用调试器逐步完成此类测试时,我有时会忘记某些方面涉及 SendKeys,这意味着击键最终会被发送到 Visual Studio IDE 而不是 Excel。
在上面的问题 #2 中,单元测试失败了,这很好——我的错——但是将所有击键发送到代码模块并破坏我的代码是完全不可接受的。
这里有人有什么想法吗?在 Visual Studio 中运行并针对 32 位 CPU 编译时,可以完全锁定代码吗?
关于这个问题的一些相关帖子,但没有一个直接解决这个问题:
- How to: Enable and Disable Edit and Continue
- “Changes to 64-bit applications are not allowed” when debugging in Visual Studio 2008
- How do I enable file editing in Visual Studio’s debug mode?
- How does “Edit and continue” work in Visual Studio?
- Can we edit our code while running the application
- Editing C# while debugging
提前感谢您的任何帮助或想法...
迈克
【问题讨论】:
-
请注意,与外部软件对话的单元测试称为集成测试。
-
@Lasse:好的,很公平。我将把上面的内容编辑为“自动化测试”,因为我正在运行一套从孤立的单元测试到集成测试的测试。谢谢。不过,这并不重要——问题在于 SendKeys,无论您要考虑哪种测试。
标签: c# visual-studio-2008 debugging editing edit-and-continue