c# - 有没有办法*完全*禁用编辑并继续?

标签 c# visual-studio-2008 debugging editing edit-and-continue

我想知道是否有一种方法可以在 Visual Studio 2008 中调试时完全锁定我的代码。代码文档在作为 64 位应用程序运行时会自动锁定,我非常喜欢这样;但是,我的大部分代码都是为 32 位的 Excel 制作插件。结果是,即使我以“AnyCPU”为目标,VS 主机也知道它在 32 位进程中运行,因此,当代码在 Visual 中运行时,源代码被锁定工作室。

我可以通过转到“工具”>“选项”>“调试”>“编辑并继续”,然后取消选中“启用编辑并继续”复选框来关闭“编辑并继续”。但是,这并没有完全锁定代码。这确实会阻止在当前 运行中执行代码中的任何编辑,但不会阻止鼠标单击或击键实际更改代码。

同样,在使用 64 位应用程序时不会发生这种情况——代码已完全锁定。我非常希望代码被完全锁定,至少有几个原因:

  1. 我在调试时可能会不小心按下某个键或类似的东西,我绝对不想这样做。这种情况很少见,但却是一个问题。

  2. 我的许多自动化测试都是通过 SendKeys 驱动用户界面的。然而,当使用调试器逐步完成此类测试时,我有时会忘记某些方面涉及 SendKeys,这意味着击键最终会发送到 Visual Studio IDE 而不是 Excel。

在上面的问题 #2 中,单元测试失败了,这很好——我的错——但是将所有击键发送到代码模块并破坏我的代码是完全不能接受的。

这里有人有什么想法吗?在针对 32 位 CPU 编译时在 Visual Studio 中托管运行时能否完全锁定代码?

关于这个问题的一些相关帖子,但没有一个直接解决这个问题:

在此先感谢您的任何帮助或想法...

迈克

最佳答案

这是我在 Visual Studio 2005 下使用的一个技巧(没有机会在 Visual Studio 2008 下测试,但它应该可以工作):

  • 打开可执行程序集的属性
  • 转到调试标签
  • 选中启用非托管代码调试复选框

代码文档应保持锁定状态,即使遇到断点,任何更改它的尝试都应触发一个弹出窗口,提示“启用非托管调试时不允许更改”

关于c# - 有没有办法*完全*禁用编辑并继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050162/

相关文章:

c# - 奇怪的 Assembly.Load 错误尝试加载使用 C# 代码提供程序编译的程序集

c# - Dispose() 不能防止内存不足异常

visual-studio - 除了解决方案资源管理器之外的 Visual Studio(带有 TFS)历史记录?

visual-studio-2008 - Visual Studio 解决方案的设置制作者

java - Eclipse:将源添加到动态添加的类

gcc - 执行步骤,矮人

c# - 实现 INotifyPropertyChanged 的​​差异

C# MVVM 升级到 EF5 - 实体成员函数去哪儿了?

c# - 嵌入式 Outlook View 控件

javascript - 如何调试用于 IE 代理设置的 Javascript proxy.pac 文件?