Visual Studio 2005: пропуск сборок по неизвестной причине?

У меня есть решение визуальной студии с рядом проектов. Диспетчер конфигурации тщательно настроен для сборки всех проектов, кроме одного (пропущенный - это тестовый проект). После создания решения в командной строке я получил следующее:

"Building XXX Debug | x64"

------ Пропущенная сборка: Проект: AAA ------

------ Пропущенная сборка: проект: BBB, конфигурация: отладка Win32 ------

Проект не выбран для сборки для этой конфигурации решения

------ Сборка началась: Проект: CCC, Конфигурация: ГГГ Отладка ia64 ------

‹Вот и сборка>

Как видите, проект BBB пропускается, потому что он не выбран в диспетчере конфигурации, проект CCC и остальные сборки в порядке, а проект AAA пропускается без ДАННОЙ ПРИЧИНЫ. Кто-нибудь знает, почему визуальная студия может пропустить сборку проекта без какой-либо причины? Все имена конфигурации (XXX, YYY Debug, Debug) и платформы (x64 / Win32 / ia64) правильно настроены в диспетчере конфигурации.


person grigoryvp    schedule 01.03.2009    source источник


Ответы (3)


Выбран ли проект AAA для конфигурации Debug | x64?

Также у меня была такая же ситуация, когда недавно загруженное решение (без файла .soa) имело конфигурацию по умолчанию для Itanium, поэтому вся система без его поддержки пропускала все проекты решений для сборки. Правильная сборка запускалась только после выбора win32 вручную.

person abatishchev    schedule 01.03.2009
comment
да, AAA выбран для Debug | x64 для построения AAA Debug | ia64. Он отлично интегрируется в IDE. - person grigoryvp; 01.03.2009
comment
В порядке. Как вы скомпилируете свое решение с помощью командной строки? используя devenv.exe / .. или msbuild.exe / ..? - person abatishchev; 02.03.2009
comment
devenv.exe, он идет в комплекте с vs2005 - person grigoryvp; 02.03.2009
comment
devenv IS VS2005 :) используйте msbuild! это ПОДХОДЯЩИЙ пакетный компоновщик от Microsoft. это бесплатно и поддерживается большинством. использование devenv - не лучшая идея, не лучшая практика, не то, что должен делать профессионал - person abatishchev; 02.03.2009

Запустите проект из командной строки с помощью MSBUILD.exe и установите параметр ведения журнала (подробность) = подробный или диагностический. Затем вы должны получить дополнительные сведения о том, почему msbuild решил пропустить рассматриваемый вариант. например

msbuild XXXX.csproj / многословие: подробно

Nb. Диагностический вывод очень подробный

person Preet Sangha    schedule 01.03.2009
comment
к сожалению, я ограничен devenv.exe из-за политики компании. У него нет ключа командной строки / verbosity :( - person grigoryvp; 02.03.2009
comment
установите среду var: verbosity = diag - person Preet Sangha; 16.03.2009

Обычные сборки в Visual Studio являются инкрементными: Visual Studio пропустит сборку проекта, если считает, что ни один из исходных файлов не был изменен - ​​обратите внимание, что он проверяет только файлы кода, а не ресурсы или другие «вещи».

Попробуйте выполнить чистую сборку, выбрав Build|Clean Solution, затем Build|Rebuild Solution, и посмотрите, получите ли вы те же результаты.

Возможно, вам придется вручную очистить артефакты сборки для каждого проекта (по умолчанию подкаталоги \Bin\ и \Obj\ в каждом каталоге проекта).

person Bevan    schedule 01.03.2009
comment
Я использую / clean и / build, процесс сборки прост: временная папка создана, последняя версия решения и проекты извлечены из sourcesafe, сборка выполнена, временная папка удалена. Никакие промежуточные артефакты, кеш и т. Д. Не могут выжить. - person grigoryvp; 02.03.2009