У меня есть сборка C ++ / CLI, состоящая примерно из 50 исходных файлов. Код в этой сборке статически связан с несколькими библиотеками C ++ для выполнения различных задач типа «тяжелый».
Я использую Visual Studio 8 (2005) SP1 для сборки этой сборки.
Построение только этой сборки (без зависимостей и т. Д.) Через «Только проект» -> «Только перестроить» занимает около 4,5 минут на приличном двухъядерном компьютере. Ниже приведен сокращенный результат сборки с указанием приблизительного времени:
Compiling...
(file 0)
(file 1)
...
(file N) // About 2 min total to compile all files
Linking... // About 12s
Generating Code // 42s
Finished Generating Code // < 1s
Embedding Manifest // < 1s
Generating Code // 30s
Finished Generating Code
(15 seconds of nothing)
Done
Как мне начать отладку, почему сборка занимает так много времени? Время компиляции и компоновки, хотя и невелико, вероятно, соответствует ожидаемому для проекта такого размера. Меня беспокоит тот факт, что я вижу два шага «Генерация кода», каждый из которых занимает гораздо больше времени, чем большинство других проектов.
Моим первым предположением было то, что это связано с количеством неуправляемого кода, который связан со сборкой. Однако у меня есть несколько проектов управляемых приложений, которые используют столько же собственного кода, и время сборки очень разумное.
Кто-нибудь знает, что именно может вызвать два шага «Генерация кода», которые занимают так много времени? Мне не хватает настроек проекта?