2010-10-17 2 views
0

Таким образом, я получаю исключение, которое заставило мой тестовый проект не открыть сборку SQLite. Однако здесь выход при компиляции:Test Class not building for x86

------ 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). Я установил проекты BOTH на x86, хотя и сохранил оба и перестроил, и он все еще не говорит, что Test строит для x86, поэтому мы видим предупреждение сборки для теста, а не другое. Как я могу построить оба для x86?

-Скотт

ответ

1

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

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

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

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

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

+0

количество раз это раздражало меня визуальной студией. Поскольку это именно то, что я должен делать, когда оно не создается для определенной платформы, я знаю, что это правильный ответ +1 :) – Sekhat

+0

Я столкнулся с этой проблемой; но до тех пор, пока я не открою диалоговое окно редактирования платформы в каждом проекте после того, как новый параметр x86 не будет сохранен. Он отображается в сетке; но не показывался в раскрывающемся списке. –