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