当我尝试在调试中编辑时收到此消息(见下图)。这仅发生在我的 Vista64 位操作系统中,而不发生在我的 XP 计算机中。为什么以及我应该怎么做?
更新 我发现我需要在 x86 中编译才能在调试时更改值。所以我的问题是为什么我不能在 x64 中做到这一点?
替代文字 http://img183.imageshack.us/img183/8523/changetohe5.png
当我尝试在调试中编辑时收到此消息(见下图)。这仅发生在我的 Vista64 位操作系统中,而不发生在我的 XP 计算机中。为什么以及我应该怎么做?
更新 我发现我需要在 x86 中编译才能在调试时更改值。所以我的问题是为什么我不能在 x64 中做到这一点?
替代文字 http://img183.imageshack.us/img183/8523/changetohe5.png
没有技术原因,只是没有实施。根据一些消息来源,微软希望在 CLR 的下一个版本中实现它。
请参阅:http: //blogs.msdn.com/stevejs/archive/2005/11/15/493018.aspx#499593
迈克·斯托尔说:
EnC 做了一些非常低级的事情,这些事情非常特定于操作系统,因此限制在单个平台上主要是资源限制。未来的 CLR 无疑会扩展这一点。我们的移植工作在 V2 中也是从头开始的,因此所有其余的调试服务也必须移植,所以我们在这里已经有了一个非常大的项目。此外,我们认为 EnC 的最大场景将围绕纯 IL 应用程序展开,这些应用程序至少允许人们在 x86 中进行开发。在这种情况下有一个解决方法:在 64 位机器上,您可以在 WOW 中将纯 IL 应用程序作为 32 位应用程序启动,然后对其执行 EnC。
这些都是 CLR 的限制,而不是 Visual Studio,这意味着如果第 3 方调试器添加 EnC,它们将具有相同的限制。在所有情况下,我们都感到高兴的是,启用每个案例的成本可以更好地用于使核心场景更强大。
我更改了配置管理器。它正在编译到任何 Cpu ......并且任何 Cpu 设置为 x64 ......我将任何 Cpu 更改为 x86 并且它可以工作。于是问题就解决了……
有人能告诉我为什么在 X64 中我们不能在调试中编辑吗?(如果有人有这个子问题的答案,我会接受)。
大概他们还没有为 x64 代码实现编辑并继续。我不认为有任何更深层次的原因。