Как заставить модульные тесты работать на платформе x64 - PullRequest
46 голосов
/ 06 апреля 2011

У меня есть приложение на C #, которое должно работать в режиме x64. Проблема в том, что я пытаюсь создать модульные тесты, которые запускают методы в приложении x64, а проект модульных тестов даже не будет создан. Я получаю следующую ошибку при попытке построить.

Ошибка загрузки C: ..... \ bin \ x64 \ Debug .... UnitTests.dll: невозможно загрузить тестовый контейнер 'C: ..... \ bin \ x64 \ Debug .... UnitTests.dll' или один его зависимостей. Если вы строите свой тестовый проект сборки как 64 битовая сборка, она не может быть загружена. Когда вы строите свой тестовый проект Сборка, выберите «Любой процессор» для платформы. Чтобы запустить ваши тесты в 64 битовый режим на 64-битном процессоре, вы должны изменить настройки теста в вкладка Hosts для запуска ваших тестов в 32-битном процессе. Детали ошибки: Не удалось загрузить файл или сборку 'file: /// C: ..... UnitTests \ bin \ x64 \ Debug .... UnitTests.dll' или один из его зависимости. Была предпринята попытка загрузить программу с неверный формат.

Я попытался изменить модульный тест на x64, а также на любой ЦП и все еще не могу запустить его. Есть ли какое-то решение для этого?

Ответы [ 6 ]

53 голосов
/ 27 июля 2015

В VS 2012 и выше вы можете выбрать целевую платформу по умолчанию из меню Test в Test Settings|Default Processor Architecture

Visual Studio Test Settings

40 голосов
/ 06 апреля 2011

Я предполагаю, что вы используете среду тестирования Visual Studios, поскольку вы не упоминаете ничего другого.В VS2010 вы можете принудительно запустить тестовый хост в x64.Создайте свои сборки как Любой ЦП или x64, затем установите тестовый хост на x64.

http://msdn.microsoft.com/en-us/library/ee782531.aspx

1 голос
/ 03 апреля 2019

У меня была такая же проблема, Добавить файл App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>
1 голос
/ 06 апреля 2011

У меня была похожая проблема.В Visual Studio 2010 (под x64) существует странная проблема, которая вызывает изменение целевого ЦП при добавлении нового проекта в существующее решение.Вы уверены, что все ссылки и цели процессора - x64?

0 голосов
/ 17 июля 2013

Эта ошибка может быть исправлена, если вы очистите и перестроите все соответствующие сборки.Должно быть, один файл неожиданно поврежден.

Одна вещь, которую VS может улучшить, - это обнаружение исключения плохого формата, сообщите имя файла.Тогда разработчик может перестроить только этот файл.

0 голосов
/ 02 марта 2013

Вам нужно будет установить все ссылки тестового проекта на локальные (значение true). У меня была эта проблема раньше, надеюсь, что она будет работать и у вас (я использую Windows 7 64 бит + VS2012)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...