В небольших проектах я могу переключиться в режим конструктора почти мгновенно (<1 сек). </p>
У меня есть большой проект, который требует около 60 секунд, чтобы открыть элемент управления или форму в режиме конструктора - только в первый раз. После этой 60-секундной задержки я могу почти мгновенно открыть любой элемент управления в проекте в режиме конструктора - пока я не перекомпилирую проект.
Если на исполняемый файл, созданный этим проектом, ссылаются в другом (маленьком) проекте, маленький проект мгновенно становится таким же медленным, как и большой проект. Точно так же, если я добавлю все файлы из большого проекта в маленький проект по отдельности, маленький проект станет таким же медленным.
Большой проект ссылается на большой проект Managed C ++, но если я добавлю ту же ссылку (и вызову функцию из ссылки, чтобы убедиться, что она загружена) для небольшого проекта, маленький проект все равно будет работать быстро.
Мой большой проект использует SandDock. Если мой небольшой проект использует SandDock, он все еще быстрый.
Мой большой проект имеет около 60 пользовательских элементов управления, которые отображаются на панели инструментов. Если я добавлю 60 пользовательских элементов управления в маленький проект, маленький проект все еще будет быстрым.
Если я сделаю пользовательские элементы управления скрытыми из панели инструментов с помощью [System.ComponentModel.ToolboxItem (false)], большой проект все еще будет работать медленно.
Проблема возникает как в 2005, так и в 2008 году.
Что может сделать большой проект настолько медленным, чтобы впервые открыть представление дизайна? Какая-то другая ссылка? Большое количество элементов управления? Большое количество классов? Другая причина?
Я заметил одну вещь (хотя, возможно, и красную сельдь), что папка ProjectAssemblies (C: \ Documents and Settings \ tim.gradwell \ Local Settings \ Application Data \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies) огромна ( > 1 ГБ) и большинство папок здесь имеют копию моей управляемой C ++ DLL! Эти папки создаются заново при каждом повторном открытии представления проекта (после перекомпиляции). Может ли это быть как-то связано с замедлением?
Дополнительная информация:
Полоса инструментов в пользовательском элементе управления или форме заставляет форму загружаться за 60 секунд. Удаление панели инструментов (но при этом в форме по-прежнему есть несколько других элементов управления) мгновенно переключается в режим конструктора.
Хотя это еще не вся история ... Набор инструментов в новом проекте не вызывает значительного замедления - поэтому в моем большом проекте должно быть что-то, что влияет на набор инструментов. Кроме того, некоторым другим формам / элементам управления, на которых нет надписей инструментов, все еще требуется 60 секунд, чтобы отобразить представление конструктора, поэтому все, что влияет на полосы инструментов, также влияет на другие элементы управления. Я буду продолжать пытаться точно определить, какие элементы управления и, возможно, даже то, что его вызывает!