Я использую Visual Studio 2008, С#. Я пытаюсь использовать edit-and-continue (редактировать код при отладке) и получить это исключение:
"Изменения в 64-битных приложениях не разрешены"
Почему? Есть ли способ обхода?
Я использую Visual Studio 2008, С#. Я пытаюсь использовать edit-and-continue (редактировать код при отладке) и получить это исключение:
"Изменения в 64-битных приложениях не разрешены"
Почему? Есть ли способ обхода?
"Редактировать и продолжать" не поддерживается в 64-разрядных приложениях на уровне CLR, поэтому Visual Studio не может его реализовать.
Самый простой способ обойти эту проблему - нацелить ваше приложение на чипы x86. Это заставит его работать в режиме Wow64 как 32-битный процесс и, следовательно, иметь возможность ENC. Вы можете сделать это, выполнив следующие
Лично, что я действительно хочу, это остановить и отредактировать, а не редактировать и продолжить.
Поэтому я просто отключу Инструменты/Параметры/Отладка/Редактирование и Продолжить.
Выполнение этого запрета на то, что надоедливое диалоговое окно от приставания ко мне о недостающей функции, которой я не хотел в первую очередь: -)
Как и jcopenha, пока нет изменений и продолжений на x64. Текущая версия 64-битной CLR ее не поддерживает. Тем не менее, там есть работа.
Вы можете найти его на Сообщение об ошибке Bibb.
Вам нужно скомпилировать вашу управляемую сборку с целевым процессором x86. Это приведет к использованию 32-битной CLR, а не 64-битной CLR.
Для проекта VB щелкните правой кнопкой мыши по проекту и перейдите в раздел "Свойства/Компилировать/Расширенные параметры компиляции/Целевой ЦП" и установите его в "x86". Для проекта С# щелкните правой кнопкой мыши по проекту и перейдите на страницу "Сооружения/сборки/платформы" и установите его на "x86".
Надеюсь, что это поможет.
Функция "Изменить и продолжить" для 64-битного кода будет поддерживаться в Visual Studio 2013.
Функция edit-and-continue просто еще не реализована в x64. Я не слышал никаких обновлений, когда они планируют сделать это еще.
У меня было такое же сообщение об ошибке в MS Visual С# Express 2010. Это было забавно, потому что приложение было определенно настроено как проект x86!
В конце концов, это была следующая строка, отсутствующая в моем файле .csproj:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
...
<PlatformTarget>x86</PlatformTarget>
...
</PropertyGroup>
Я не знаю, почему этого не было... Я предполагаю, что MS Visual С# Express 2010 не bugfree;)
когда целевой ЦП установлен на "Любой процессор", он будет работать как 32-битное приложение на 32-битных окнах и 64-битное приложение на 64-битных окнах. Однако визуальная студия не позволяет использовать функцию "edit-and-continue" для 64-битного приложения.
Чтобы отладить "свободно" на 64-битной машине, мы можем:
a) установите "Целевой ЦП" на "Любой процессор", но установите флажок "Предпочтительный 32-битный".
b) или, установите 'Target CPU' в 'x86'
ОЧЕНЬ важно: для обеих параметров требуется, чтобы окно "Включить оптимизацию" было не проверено.