在Visual Studio 2008中进行调试时,“不允许对64位应用程序进行更改”

时间:2009-09-30 14:27:34

标签: c# visual-studio 64-bit edit-and-continue

我正在使用Visual Studio 2008,C#。我尝试使用编辑并继续(在调试时编辑代码),并获得此异常:

“不允许对64位应用程序进行更改”

为什么?有解决方法吗?

8 个答案:

答案 0 :(得分:47)

CLR级别的64位应用程序不支持

编辑和继续,因此Visual Studio也无法实现它。

解决此问题的最简单方法是将您的应用程序定位到x86芯片。这将使其作为32位进程在Wow64模式下运行,因此能够进行ENC。您可以通过执行以下操作来执行此操作

  1. 右键单击.EXE应用程序,然后选择“属性”
  2. 转到“构建”选项卡
  3. 将平台目标组合框更改为x86
  4. enter image description here

答案 1 :(得分:6)

就个人而言,我真正想要的是停止编辑而不是编辑并继续。

所以我只需关闭工具/选项/调试/编辑并继续。

这样做会抑制那个讨厌的对话框让我误解了我一开始并不想要的缺失功能: - )

答案 2 :(得分:4)

就像jcopenha说的那样,x64上还没有编辑和继续。当前版本的64位CLR不支持它。但是,有一个工作。

您可以在Bug Babble post找到它。

  

您需要使用x86的目标CPU编译托管程序集。这将导致使用32位CLR而不是64位CLR。

     

对于VB项目,右键单击项目并转到属性/编译/高级编译选项/目标CPU并将其设置为“x86”。   对于C#项目,右键单击项目并转到Properites / Build / Platform Target并将其设置为“x86”。

希望它有所帮助。

答案 3 :(得分:4)

"编辑并继续" Visual Studio 2013将支持64位代码的功能。

More information here

答案 4 :(得分:3)

编辑并继续功能尚未在x64中实现。我还没有听到他们计划什么时候更新的消息。

另见Why doesn't Edit and Continue work on the x64 CLR?

答案 5 :(得分:0)

我在MS Visual C#Express 2010中有相同的错误消息。虽然很有趣,因为应用程序肯定被配置为x86项目!

最后,我的.csproj文件中缺少以下行:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
    ...
    <PlatformTarget>x86</PlatformTarget>
    ...
</PropertyGroup>

我不知道它为什么会丢失......我猜MS Visual C#Express 2010并非无错误;)

答案 6 :(得分:0)

  1. 当目标CPU设置为&#39;任何CPU&#39;时,它将在32位窗口上运行为32位应用程序,在64位窗口上运行64位应用程序。然而,visual studio不允许“编辑 - 继续”#39; 64位应用程序的功能。

  2. 为了更好地调试&#39;在64位机器上,我们可以:

    a)设置&#39;目标CPU&#39;到任何CPU&#39;但请查看“首选32位”#39;框。

    b)或者设置&#39;目标CPU&#39;到&#39; x86&#39;

  3. 非常重要:这两个选项都需要启用优化&#39;框是待检查的。

答案 7 :(得分:0)

很遗憾,64位不支持“编辑并继续”。实际上,如果在调试64位应用程序时尝试使用“编辑并继续”,则会收到以下错误消息:“不允许更改为64位应用程序” 许多用户可能没有意识到默认情况下,当您在Visual Studio 2008中创建C#或VB项目时,该项目的“平台”设置为“任何CPU”。这意味着,如果您在32位操作系统上运行应用程序,则该应用程序将作为32位进程运行,并且类似地,如果您在64位操作系统上运行该应用程序,则该应用程序将为64位。 “任何CPU”的后果是,当您尝试在64位操作系统上调试应用程序时,将无法使用“编辑并继续”功能。

但是,有一种解决方法。在开发过程中,可以将项目的平台设置为32位,这意味着即使在64位操作系统上,应用程序也将作为32位进程运行。这就是所谓的WOW64或“ Windows On Windows”,这基本上意味着您可以在64位操作系统上运行32位应用程序。

那么,如何将项目的平台设置为32位?好了,您需要使用Visual Studio配置管理器创建32位平台。这是一个简短的演练。

首先,从构建–>配置管理器中打开“配置管理器”对话框。配置管理器对话框如下所示。