Почему msbuild и link.exe “зависают” во время сборки?

Вы только хотите использовать, Вызывают или BeginInvoke для обрабатываемой детали абсолютного минимума, требуемой изменить UI. Ваш "тяжелый" метод должен выполниться на другом потоке (например, через BackgroundWorker), но тогда использующий Управление. Вызывать/Управлять. BeginInvoke только для обновления UI. Тем путем Ваш поток UI будет свободен обработать события UI и т.д.

, Видят, что мой распараллеливает статью для пример WinForms - хотя статья была написана, прежде чем BackgroundWorker прибыл в сцену, и я боюсь, что не обновил его в этом отношении. BackgroundWorker просто упрощает обратный вызов немного.

7
задан GEOCHET 13 July 2009 в 14:43
поделиться

5 ответов

Оптимизация всей программы (/ GL и / LTCG) и / MP не смешиваются - компоновщик зависает. Я поднял этот вопрос на Connect .

В итоге это подтвержденная ошибка в VS2008; свяжитесь с PSS, если вам нужно исправление; и исправление включено в VS2010.

Если вы не можете ждать так долго, отключите / MP (более медленная компиляция) или / LTCG (более медленный код).

VS2012 screenshot for setting

8
ответ дан 6 December 2019 в 15:25
поделиться

Используете ли вы xcopy в своих скриптах? Этот предлагает обернуть xcopy командой cmd / c ".." в качестве решения.

Если бы это было не так, я бы рекомендовал сузить круг вопросов, разрешив работать только одному процессору (т.е. удалить / maxcpucount) Это исключит любую форму состояния гонки между процессами компиляции.

2
ответ дан 6 December 2019 в 15:25
поделиться

Пробовали ли вы отключить инкрементное связывание или, наоборот, всегда принудительно перестраивать все?

0
ответ дан 6 December 2019 в 15:25
поделиться

Вы можете попробовать следующее: Откройте диалоговое окно сборки через Меню -> Инструменты -> Параметры -> Проекты и решения -> Сборка и запуск

Здесь вы можете установить для параметра «Подробность вывода сборки проекта MSBuild» значение «Диагностика». Возможно, это даст больше информации о том, что идет не так.

В том же диалоговом окне вы можете установить «Максимальное количество параллельных проектов. builds "до 1. Может быть, это работает вокруг" зависания "link.exe.

1
ответ дан 6 December 2019 в 15:25
поделиться

mspdbsrv.exe is used to combine all debug info into one pdb file. The VS2005 version of mspdbsrv.exe is buggy, it might be that the VS2005 version has some of the same issues. Killing it before building is making a difference for some people. We're going to add it to our builds as well since we're regularly suffering from unknown PDB errors.

1
ответ дан 6 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: