2015-09-08 5 views
0

этой строки кодаПриложения работает в качестве x86 в модульных тестах в Visual Studio, но работает как x64, когда он стоит особняком

Environment.Is64BitProcess 

имеет значение верно, когда мое приложение работает стоя в одиночку.

Но это же выражение принимает значение false, когда оно выполняется в моих модульных тестах в Visual Studio.

Я выбрал «Любой процессор» в качестве платформы решений, машина 64 бит.

Почему это?

enter image description here

Даже когда я установил его как на картинке выше, Resharper по-прежнему работает как x86

+0

@ Luaan не имеет отношения. VS может нормально запускать/отлаживать процессы x86 и x64. И тестовый бегун по умолчанию может работать и в режиме x64 (пока он настроен для этого). –

+0

Исходный комментарий @Luaan о отношении к VS - это x86. Я пытался подчеркнуть тот факт, что процесс x86 останавливает VS от работы с x64-процессами. Теперь, когда исходный комментарий ушел, оба моих комментария будут саморазрушаться в 10 ... 9 ... –

ответ

3

Это в основном говорит о том, что блок испытания бегун запускается как 32-разрядный процесс. Как вы настроите это, будет зависеть от того, какой из бегунов для тестирования модулей вы используете (их много).

Когда вы выполняете свои модульные тесты, любые предпочтения, которые ваши сборки приложений имеют в плане архитектуры, будут проигнорированы по сравнению с конфигурацией тестового бегущего модуля - тогда как при автономной работе конфигурация сборки (например, «AnyCPU» предпочитает x86 "или просто" AnyCPU ").

Если вам действительно нужны ваши модульные тесты для работы в x64, вы должны посмотреть, как вы их запускаете, и если вы не можете изменить способ их запуска в VS, вы, по крайней мере, сможете запускайте их в автономном бегуне, который может легко поддерживать x64.

+0

VS 2013: Тесты-> Настройки тестов -> Архитектура процессора по умолчанию -> x64 следует выбрать x64 для стандартного VS-runner VS , Для более старых настроек может быть в другом месте - http://stackoverflow.com/questions/5880337/run-tests-in-64-bit –

+0

@Alexei, да, эта опция выбрана, но тестовый бегун Resharper все еще работает мой тестовый проект в x86, хотя тестовый проект установлен на любой процессор на 64-битной машине. и в настройках resharper я выбрал архитектуру платформы по умолчанию как автоматическую, основанную на целевой платформе тестового проекта. – CuiPengFei

+0

@CuiPengFei «любой процессор» по умолчанию поставляется с «предпочтительным 32-разрядным» - убедитесь, что он не установлен - http: // stackoverflow. com/questions/12066638/what-is-the-purpose-of-the-prefer-32-bit-setting-in-visual-studio-2012-and-how –

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

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