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

我正在使用Visual Studio 2008,C#。 我尝试使用编辑和继续(在debugging时编辑代码),并得到这个exception:

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

这是为什么? 有没有解决方法?

编辑和继续在CLR级别的64位应用程序上不受支持,因此Visual Studio无法实现它。

解决此问题的最简单方法是将您的应用程序定位到x86芯片。 这将导致它以32位处理的方式在Wow64模式下运行,从而能够进行ENC。 您可以通过执行以下操作来完成此操作

  1. 右键单击.EXE应用程序,然后select“属性”
  2. 转到生成选项卡
  3. 将平台目标combobox更改为x86

在这里输入图像说明

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

所以我只需closures工具/选项/debugging/编辑并继续。

这样做可以抑制那些烦人的对话框,使我不知道一个我不想要的function:-)

Visual Studio 2013支持64位代码的“编辑并继续”function。

更多信息在这里 。

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

你可以在Bug Babble上find它。

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

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

希望能帮助到你。

编辑和继续function还没有在x64中实现。 我还没有听到有关计划何时做的更新。

另请参阅为什么不编辑并继续在x64 CLR上工作?

我在MS Visual C#Express 2010中也遇到了相同的错误信息。这很有趣,因为应用程序确实被configuration为x86项目!

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

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

我不知道为什么它失踪了…我想MS Visual C#Express 2010不是无bug的;)

  1. 当目标CPU被设置为“任何CPU”时,它将在32位窗口上以32位应用程序运行,在64位窗户上以64位应用程序运行。 不过,Visual Studio不允许64位应用程序的“编辑和继续”function。

  2. 为了在64位机器上“stream利地”debugging,我们可以:

    a)将“目标CPU”设置为“任何CPU”,但选中“首选32位”框。

    b)或将“目标CPU”设置为“x86”

非常重要的是:这两个选项都要求“启用优化”框被取消选中。