Тестовый класс не строится для x86 - PullRequest
0 голосов
/ 17 октября 2010

Таким образом, я получаю исключение, что мой тестовый проект не может открыть сборку SQLite. Однако вот вывод, когда я компилирую:

------ Build started: Project: Budget, Configuration: Debug x86 ------
  Budget -> C:\Users\Scott\Desktop\Development\Budget\Budget\Budget\bin\Debug\Budget.exe
------ Build started: Project: Test, Configuration: Debug Any CPU ------
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Data.SQLite". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
  Test -> C:\Users\Scott\Desktop\Development\Budget\Budget\Test\bin\Debug\Test.dll
========== Build: 2 succeeded or up-to-date, 0 failed, 0 skipped ==========

Как вы можете видеть, код проекта хорошо собирается (кажется, потому что он установлен на x86). Однако я установил ОБА проекты на x86, сохранил оба и перестроил, и он до сих пор не говорит, что Test строит для x86, поэтому мы видим предупреждение о сборке для теста, а не для другого. Как я могу получить как построить для x86?

-Скотт

1 Ответ

1 голос
/ 17 октября 2010

Это произойдет, когда вы импортируете проект, созданный в более ранней версии VS. Он импортирует его для конфигураций Debug | AnyCPU и Release | AnyCPU. Добавление нового проекта в решение создает дополнительные конфигурации: Debug | x86 и Release | x86, значения по умолчанию для VS2010. Теперь у тебя четыре. Они попытались найти обходной путь для этого, добавив еще один набор, Debug | Mixed Platforms и Release | Mixed Platforms. Теперь у тебя шесть.

Уч. Это немного беспорядок. Вероятно, хуже всего то, что имя конфигурации никоим образом не связано с настройкой целевой платформы. Вы можете изменить его, но имя конфигурации не изменится. Это не очень хорошо продумано.

Исправьте проблему с помощью Build + Configuration Manager. Начните с настройки = Отладка, платформа = x86. Обратите внимание на столбец Platform, выберите проект с любым ЦП. Нажмите на стрелку со списком, New и выберите x86. Важное замечание: снимите флажок «Создать новые платформы решений». Установите флажок «Сборка». Выберите конфигурацию = отпустите и повторите процедуру.

Это ставит все в правильное место. Вы можете избавиться от платформ bozo, выбрав Edit в правом верхнем выпадающем списке платформ и используя Remove. О, сделай резервную копию, прежде чем начать.

Я не думаю, что это действительно решит вашу проблему, вы должны просто удалить ссылку на сборку SQLite и добавить ее обратно.

...