Что вызывает некомфортные сборки командной строки Visual Studio 2005?

В Visual Studio 2005 у меня есть решение с явными зависимостями, указанными в диалоговом окне Зависимости проекта.

Когда я собираю, например, через devenv / rebuild Release, проекты строятся в другом порядке, чем при загрузке IDE. Этот порядок не разрешен указанными мной зависимостями.

В некоторых случаях происходит сбой devenv :(

Журнал показывает число перед каждой строкой, показывающей порядок, который, я считаю, является порядком, вызванным зависимостями:

11> MyExeProject - 1 ошибка (ов), 0 предупреждение (я)

Однако сборки, похоже, запускаются в этом порядке, прерываются и продолжаются в другом порядке, что не работает. Так что 8 может закончить сборку до 11. Если 11 ссылок в 8, есть проблема.

Подобное изменение порядка происходит в IDE, но порядок сборки все еще поддерживает целостность.

Нужно строить из командной строки какие-нибудь идеи, почему это или в чем причина?

10.12.2008 18:47:02
3 ОТВЕТА

Убедитесь, что вы правильно установили свои зависимости в решении. Это может напрямую повлиять на порядок сборки.

1
11.12.2008 00:23:42
Проблема с переупорядочением заключается в том, что одновременно выполняется несколько сборок из-за нескольких ядер / потоков / процессоров. Microsoft пытается быть более эффективной, но они потерпели неудачу.
unixman83 1.03.2011 17:55:45

Если devenv не рухнул для вас при создании IDE, вам повезло.

Следующий обходной путь неприятен, но он сработал для меня, вздох. Перезагрузитесь и настройте BIOS, чтобы позволить запускать только одно ядро ​​процессора.

-1
11.12.2008 00:43:08
Интересно, вы говорите, что, я вижу в диспетчере задач, несколько копий cl.exe запущены время от времени.
theschmitzer 11.12.2008 17:11:07
Конечно, мы хотим, чтобы запускались несколько копий cl.exe, мы хотим, чтобы несколько ядер использовались по назначению, и мы хотим, чтобы devenv.exe нашел способ избежать сбоев при этом. Вздох.
Windows programmer 12.12.2008 06:22:50
Затем откройте диспетчер задач и установите сходство процессов для решения devenv.
Daemin 17.12.2008 16:07:34

Хорошо, вот реальный ответ, я верю.

Многопроцессорные сборки включены. Порядок зависимости все еще применяется в IDE, но не через командную строку, по крайней мере в VS 2005.

Выключить его можно с помощью Tools / Options / Build and Run. Установите максимум на 1.

8
15.12.2008 19:25:04
У меня была похожая проблема, когда я переместил сборку в многопроцессорную систему и нашел то же решение.
Philibert Perusse 17.12.2008 19:03:58