我使用Visual Studio2008,C#。我尝试使用编辑并继续(编辑码在调试),以及获得这种例外:

"修改为64-位应用程序不允许"

为什么?是否有一个解决方法?

有帮助吗?

解决方案

64 位应用程序在 CLR 级别不支持“编辑并继续”,因此 Visual Studio 也无法实现它。

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

  1. 右键单击 .EXE 应用程序并选择属性
  2. 转到“构建”选项卡
  3. 将 Platform Target 组合框更改为 x86

enter image description here

其他提示

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

所以我干脆关掉工具/选项/调试/编辑并继续。

这样做抑制那个讨厌的对话框,从缠着我有关缺失的功能,我不想在首位: - )

"编辑和继续"特征为64位代码将支持下Visual Studio2013年。

更多的信息在这里.

就像jcopenha说没有编辑并继续在x64上呢。 64位CLR的当前版本不支持它。然而,有一个变通。

您可以找到它的错误咿呀后

  

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

     

对于VB项目,右键单击该项目,并选择属性/编译/高级编译选项/目标CPU,将其设置为“86”。   对于C#项目,右击该项目并转到性质在/构建/平台目标,并将其设置为“86”。

希望它能帮助。

在编辑和继续功能根本没有在64位得到落实呢。我没有听说过,当他们计划做这些事上的任何更新。

另请参见为什么不编辑并继续在64 CLR工作?

我在微软的Visual C#2010年快递同样的错误消息,这很有趣,但因为应用肯定是配置为x86的项目!

在最后,它是下面的线在我的.csproj文件丢失:

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

我不知道为什么它缺少...我想微软的Visual C#快讯2010年不bugfree;)

  1. 当目标 CPU 设置为“任何 CPU”时,它将在 32 位 Windows 上作为 32 位应用程序运行,在 64 位 Windows 上作为 64 位应用程序运行。然而,Visual Studio 不允许 64 位应用程序使用“编辑并继续”功能。

  2. 为了在 64 位机器上“流畅”地调试,我们可以:

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

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

很重要:这两个选项都需要取消选中“启用优化”框。

不幸的是,编辑并继续不支持在64位。事实上,如果您尝试使用编辑和调试64位应用程序时继续,您会收到以下错误信息:“到64位应用程序不能更改” 很多用户可能不知道,在默认情况下,当你在Visual Studio 2008创建一个C#或VB项目中,“平台”项目设置为“任何CPU”。这意味着,如果您运行在32位操作系统上的应用程序,应用程序将运行32位程序和同样,如果您运行在64位操作系统上的应用程序,该应用程序将是64位。 “任何CPU”的后果是,当你尝试调试一个64位操作系统上的应用程序,你将无法使用编辑并继续功能。

然而,有一种替代方法。在开发过程中,您可以为您的项目到32位平台,这意味着你的应用程序将作为32位进程甚至在64位操作系统上运行。这被称为WOW64或“Windows在Windows”这基本上意味着可以运行在64位操作系统上的32位应用程序。

那么,你是如何设置的平台,让您的项目到32位?那么,你需要创建使用Visual Studio配置管理器中的32位平台。下面是一个简单步骤。

首先,从构建打开“配置管理器”对话框 - >配置管理器。下面示出了配置管理器对话框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top