Mik*_*lum 10 c# debugging editing visual-studio-2008 edit-and-continue
我想知道在Visual Studio 2008中调试时是否有办法完全锁定我的代码.代码文件在作为64位应用程序运行时自动锁定,我更喜欢这些; 但是,我的大部分编码都是为Excel创建加载项,即32位.结果是,即使我以'AnyCPU'为目标,VS主机也知道它在32位进程内运行,因此,当代码在Visual Studio中托管时,源代码未被锁定.
我可以通过转到"工具">"选项">"调试">"编辑并继续",然后取消选中"启用编辑并继续"复选框来关闭"编辑并继续".但是,这并不能完全锁定代码.这样可以防止代码中的任何编辑在当前运行中执行,但它不会阻止鼠标单击或击键实际更改代码.
同样,当使用64位应用程序时,这不会发生 - 代码完全被锁定.我非常希望代码完全锁定至少有几个原因:
我可以在调试时不小心碰到一个键或类似物,我绝对不想这样做.这很罕见,但这是一个问题.
我的许多自动化测试通过SendKeys驱动用户界面.但是,当使用调试器逐步完成这样的测试时,我有时会忘记某些方面涉及SendKeys,这意味着击键最终会被发送到Visual Studio IDE而不是Excel.
在上面的问题#2中,单元测试失败,这很好 - 我的不好 - 但是将所有击键发送到代码模块并破坏我的代码是完全不可接受的.
有人有任何想法吗?在针对32位CPU编译时,可以在Visual Studio中运行托管时完全锁定代码吗?
关于这个问题的一些相关帖子,但没有一个直接解决这个问题:
在此先感谢任何帮助或想法......
麦克风
这是我在Visual Studio 2005下使用的一个技巧(没有机会在Visual Studio 2008下测试,但它应该工作):
即使遇到断点,代码文档也应保持锁定状态,任何更改它的尝试都应触发弹出窗口"启用非托管调试时不允许更改".
这是我能想到的最好的。它有效,但有些步骤您可能不想执行。
本质上,该技术是在运行应用程序时将项目文件设置为只读,然后在应用程序结束后将它们设置回可写。
然而,在 VS2k8 中,默认情况下,将文件设置为只读仍然允许您编辑该文件。您需要首先在“工具”>“选项”>“环境”>“文档”中关闭“允许编辑只读文件...”设置。
其次,您需要将以下键作为 DWORD 添加到注册表中,并将其值设置为 1:
HKCU\Sofware\Microsoft\Visual Studio\9.0\Source Control\UncontrolledInMemoryEditDialogSuppressed
Run Code Online (Sandbox Code Playgroud)
这仍然不能完全发挥作用。然后您需要做的就是将该项目的源代码管理设置为 Visual Source Safe。(<-- 这是我假设您不喜欢的步骤。)
然后重新启动VS2k8。
此时,如果您将其中一个文件设置为只读,您将看到 Visual Studio 根本不允许您编辑该文件。当您尝试时,它会播放计算机的异常音乐。
现在,要在运行应用程序时使文件只读,请设置构建后流程来执行此操作。这很容易。
更难的是,一旦您的应用程序完成运行,将它们设置回可写状态。最简单的解决方案可能是批处理文件快捷方式。
归档时间: |
|
查看次数: |
3981 次 |
最近记录: |