2013-09-25 2 views
0

У меня есть сборка проекта C# с AnyCPU. Мы также динамически загружаем функцию, которая в настоящее время использует 32-разрядные библиотеки DLL. При отключенной функции приложение работает довольно успешно, как 64-битное приложение. Следовательно, Visual Studio определяет, что приложение будет работать в 64-битном режиме. Чтобы заставить приложение работать как 32-битный процесс, у нас есть шаг Post Build в основном проекте, который использует CorFlags для установки 32-битного. Это отлично работает при запуске приложения вне Visual Studio. Однако, если я отлаживаю приложение с помощью F5, я получаю сообщение об ошибке, указывающее на несоответствие 32/64 бит. Похоже, что Visual Studio определила, что приложение может работать как 64-битный процесс и соответственно настраивает отладчик, не подозревая, что я запустил CorFlags, чтобы заставить его до 32 бит.Принудительное приложение C# WinForms, построенное с AnyCPU для отладки как 32-разрядный процесс

Есть ли способ заставить Visual Studio отлаживать приложение как 32-битный процесс? Я хотел бы оставить платформу целевой, поскольку AnyCPU, поскольку сторонние компоненты в конечном итоге будут обновлены до 64 бит.

+0

Недорогим решением было бы добавить еще один проект в виде 32 бит и загрузить AnyUCU EXE в качестве сборки и запустить Main from Main ... –

+0

Что произойдет, если вы присоедините отладчик после того, как процесс был запущен? –

ответ

0

Скорее всего, Vshost Visual Studio вашего приложения, созданного в конкретной версии и отладчике, не может понять это, поскольку отладчик должен быть тем же самым бит-ароматом, что и exe, это отладка (и все его сборки).

Вы можете попробовать запустить exe самостоятельно и просто подключить процесс через меню Debug. Мог бы получить лучшие результаты для контрольных точек, но без vshost это будет не так много.

Это только теория, и в настоящее время у меня недостаточно отзывов, чтобы прокомментировать исходную тему; поэтому, если вы считаете это неправильным, пожалуйста, не обращайте внимания.

+0

В настоящее время мы используем Attach to Process, как вы предлагаете, но это не идеальное решение. –

+0

У вас здесь очень специфический набор обстоятельств. О, мальчик ... lol –

 Смежные вопросы

  • Нет связанных вопросов^_^