Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;不允许更改64位应用程序”;在VisualStudio2008中调试时_C#_Visual Studio_64 Bit_Edit And Continue - Fatal编程技术网

C# &引用;不允许更改64位应用程序”;在VisualStudio2008中调试时

C# &引用;不允许更改64位应用程序”;在VisualStudio2008中调试时,c#,visual-studio,64-bit,edit-and-continue,C#,Visual Studio,64 Bit,Edit And Continue,我使用的是Visual Studio 2008,C#。我尝试使用“编辑并继续”(在调试时编辑代码),并出现以下异常: “不允许更改64位应用程序” 为什么呢?有解决办法吗?x64中还没有实现编辑并继续功能。我还没有听到他们计划什么时候做的任何更新 另请参见,正如jcopenha所说,x64上还没有“编辑并继续”。64位CLR的当前版本不支持它。然而,有一个解决办法 你可以在电视上找到它 您需要使用x86的目标CPU编译托管程序集。这将导致使用32位CLR而不是64位CLR 对于VB项目,右键单击

我使用的是Visual Studio 2008,C#。我尝试使用“编辑并继续”(在调试时编辑代码),并出现以下异常:

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


为什么呢?有解决办法吗?

x64中还没有实现编辑并继续功能。我还没有听到他们计划什么时候做的任何更新


另请参见

,正如jcopenha所说,x64上还没有“编辑并继续”。64位CLR的当前版本不支持它。然而,有一个解决办法

你可以在电视上找到它

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

对于VB项目,右键单击该项目并转到Properties/Compile/Advanced Compile Options/Target CPU并将其设置为“x86”。 对于C#项目,右键单击该项目并转到Properites/Build/Platform Target并将其设置为“x86”


希望有帮助。

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

解决此问题的最简单方法是将应用程序定向到x86芯片。这将导致它以32位进程的形式在Wow64模式下运行,因此能够ENC

  • 右键单击.EXE应用程序并选择属性
  • 转到“生成”选项卡
  • 将平台目标组合框更改为x86

  • 我在MS Visual C#Express 2010中收到了相同的错误消息。不过这很有趣,因为应用程序肯定是配置为x86项目的

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

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
        ...
        <PlatformTarget>x86</PlatformTarget>
        ...
    </PropertyGroup>
    
    
    ...
    x86
    ...
    
    我不知道为什么它不见了。。。我想微软的Visual C#Express 2010并不是没有错误的;)

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


    .

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

    因此,我只需关闭工具/选项/调试/编辑并继续

    这样做会阻止那个讨厌的对话框纠缠我一开始不想要的功能:-)

  • 当目标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位?您需要使用VisualStudio配置管理器创建一个32位平台。下面是一个简短的演练


    首先,从Build–>Configuration Manager打开“Configuration Manager”对话框。配置管理器对话框如下图所示。

    执行以下回答帮助:阅读这里,Jared,我有点希望.NET 4.0能解决这个问题,但事实似乎并非如此。“你能对此提供一些见解吗?”史蒂文,遗憾的是,这里没有太多的见解。64位ENC支持没有进入Visual Studio 2010/.Net 4(公平地说,我们在2010年解决了很多问题,新的ENC代码对语言团队或CLR来说都不便宜)。但要知道,微软明白缺少64位ENC是一个痛点和挫折的根源,我想它在Dev11的列表中排名很高。请对此问题投票-更改后不要忘记按CTRL+S键。:)我喜欢这个答案,因为它不涉及将目标平台更改为x86。