Почему задача MSBuild ResolveProjectReferences занимает очень много времени? - PullRequest
8 голосов
/ 30 июля 2010

У меня есть решение Silverlight 4, которое требует очень много времени для сборки как из VS2010, так и из командной строки MSBuild 4.

Решение содержит 42 проекта, один - проект приложения Silverlight, один проект веб-приложения, а остальные - библиотеки классов.

Сводная таблица MSBuild показывает, что эти задачи занимают значительное время ...

29891 ms  ResolveAssemblyReferences                 68 calls
115609 ms  CopySilverlightApplications                1 calls
131547 ms  ValidateXaml                              36 calls
425688 ms  ResolveProjectReferences                  68 calls
634031 ms  Build                                     71 calls

Зависимости проекта довольно хорошо организованы, и порядок сборки выглядит разумным. У меня есть все проекты, скомпилированные в одну выходную папку, и все ссылки имеют CopyLocal = false.

Похоже, худшим нарушителем является ResolveProjectReferences, но почему это займет так много времени?

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

У вас включен анализ кода при сборке? Если это так, попробуйте отключить его. Была похожая проблема. После отключения анализа кода сборка запускается примерно в 5 раз быстрее.

1 голос
/ 23 января 2014

ResolveProjectReferences должен собрать каждый ссылочный проект.Поэтому возможно, что некоторые проекты собираются несколько раз.

Используйте ссылки на файлы и центральный процесс сборки, чтобы устранить эту проблему.

я использовал это в проекте один раз

мы сократили время сборки с 12 до 3 минут.

...