"修改为64-位应用程序不允许"调试时在Visual Studio2008
-
19-09-2019 - |
题
我使用Visual Studio2008,C#。我尝试使用编辑并继续(编辑码在调试),以及获得这种例外:
"修改为64-位应用程序不允许"
为什么?是否有一个解决方法?
解决方案
64 位应用程序在 CLR 级别不支持“编辑并继续”,因此 Visual Studio 也无法实现它。
解决此问题的最简单方法是将您的应用程序定位到 x86 芯片。这将导致它作为 32 位进程在 Wow64 模式下运行,因此能够进行 ENC。您可以通过执行以下操作来做到这一点
- 右键单击 .EXE 应用程序并选择属性
- 转到“构建”选项卡
- 将 Platform Target 组合框更改为 x86
其他提示
就个人而言,我真正想要的是停止和编辑不编辑并继续。
所以我干脆关掉工具/选项/调试/编辑并继续。
这样做抑制那个讨厌的对话框,从缠着我有关缺失的功能,我不想在首位: - )
"编辑和继续"特征为64位代码将支持下Visual Studio2013年。
就像jcopenha说没有编辑并继续在x64上呢。 64位CLR的当前版本不支持它。然而,有一个变通。
您可以找到它的错误咿呀后
您需要使用x86的目标CPU编译您的托管程序集。这将导致32位CLR被使用,而不是64位的CLR。
对于VB项目,右键单击该项目,并选择属性/编译/高级编译选项/目标CPU,将其设置为“86”。 对于C#项目,右击该项目并转到性质在/构建/平台目标,并将其设置为“86”。
希望它能帮助。
在编辑和继续功能根本没有在64位得到落实呢。我没有听说过,当他们计划做这些事上的任何更新。
我在微软的Visual C#2010年快递同样的错误消息,这很有趣,但因为应用肯定是配置为x86的项目!
在最后,它是下面的线在我的.csproj文件丢失:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
...
<PlatformTarget>x86</PlatformTarget>
...
</PropertyGroup>
我不知道为什么它缺少...我想微软的Visual C#快讯2010年不bugfree;)
当目标 CPU 设置为“任何 CPU”时,它将在 32 位 Windows 上作为 32 位应用程序运行,在 64 位 Windows 上作为 64 位应用程序运行。然而,Visual Studio 不允许 64 位应用程序使用“编辑并继续”功能。
为了在 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位平台。下面是一个简单步骤。
首先,从构建打开“配置管理器”对话框 - >配置管理器。下面示出了配置管理器对话框。