Подтвердить что ты не робот

"Изменения в 64-разрядных приложениях не разрешены" при отладке в Visual Studio 2008

Я использую Visual Studio 2008, С#. Я пытаюсь использовать edit-and-continue (редактировать код при отладке) и получить это исключение:

"Изменения в 64-битных приложениях не разрешены"

Почему? Есть ли способ обхода?

4b9b3361

Ответ 1

"Редактировать и продолжать" не поддерживается в 64-разрядных приложениях на уровне CLR, поэтому Visual Studio не может его реализовать.

Самый простой способ обойти эту проблему - нацелить ваше приложение на чипы x86. Это заставит его работать в режиме Wow64 как 32-битный процесс и, следовательно, иметь возможность ENC. Вы можете сделать это, выполнив следующие

  • Щелкните правой кнопкой мыши на приложении .EXE и выберите "Свойства"
  • Перейдите на вкладку "Построение".
  • Измените поле со списком платформы Target на x86

enter image description here

Ответ 2

Лично, что я действительно хочу, это остановить и отредактировать, а не редактировать и продолжить.

Поэтому я просто отключу Инструменты/Параметры/Отладка/Редактирование и Продолжить.

Выполнение этого запрета на то, что надоедливое диалоговое окно от приставания ко мне о недостающей функции, которой я не хотел в первую очередь: -)

Ответ 3

Как и jcopenha, пока нет изменений и продолжений на x64. Текущая версия 64-битной CLR ее не поддерживает. Тем не менее, там есть работа.

Вы можете найти его на Сообщение об ошибке Bibb.

Вам нужно скомпилировать вашу управляемую сборку с целевым процессором x86. Это приведет к использованию 32-битной CLR, а не 64-битной CLR.

Для проекта VB щелкните правой кнопкой мыши по проекту и перейдите в раздел "Свойства/Компилировать/Расширенные параметры компиляции/Целевой ЦП" и установите его в "x86". Для проекта С# щелкните правой кнопкой мыши по проекту и перейдите на страницу "Сооружения/сборки/платформы" и установите его на "x86".

Надеюсь, что это поможет.

Ответ 6

У меня было такое же сообщение об ошибке в MS Visual С# Express 2010. Это было забавно, потому что приложение было определенно настроено как проект x86!

В конце концов, это была следующая строка, отсутствующая в моем файле .csproj:

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

Я не знаю, почему этого не было... Я предполагаю, что MS Visual С# Express 2010 не bugfree;)

Ответ 7

  • когда целевой ЦП установлен на "Любой процессор", он будет работать как 32-битное приложение на 32-битных окнах и 64-битное приложение на 64-битных окнах. Однако визуальная студия не позволяет использовать функцию "edit-and-continue" для 64-битного приложения.

  • Чтобы отладить "свободно" на 64-битной машине, мы можем:

    a) установите "Целевой ЦП" на "Любой процессор", но установите флажок "Предпочтительный 32-битный".

    b) или, установите 'Target CPU' в 'x86'

ОЧЕНЬ важно: для обеих параметров требуется, чтобы окно "Включить оптимизацию" было не проверено.