1

Я использую VS 2015 Pro. У меня есть форма, называемая test. Файл test.designer.cs содержит около 12k + строк кода. Он содержит множество элементов управления Telerik, размещенных на нескольких вкладках (RadPageViewPage) и множестве SplitContainer. Открытие этой формы в режиме разработки занимает несколько секунд, но это не проблема.Предотвратите конструктор.cs от rebuild

проблема Сценарий:

  1. Открытые две карты test.cs и test.cs [Design].
  2. Добавьте одну строку кода в test.cs. (private Int32 x = 0).
  3. Выполнить сборку (Shift + F6)
  4. Прибыль! ... не в этот раз, потому что сборка занимает 20 секунд. :(

Если выполнить то же самое, но без открытия test.cs [Design], сборка производится в течение 1 секунды.

  1. Почему VS перестраивает designer.cs файл, если я не сделал какой-либо изменить в режиме конструктора?
  2. Как предотвратить это?
  3. Каковы лучшие практики для такой крупной формы, содержащие большое количество элементов управления?

Редактировать 1: Так что предположение, что designer.cs перестроено, неверно.
Проблема в другом.

Я начал использовать VS, используя devenv.exe/log.
Ниже приведены некоторые ошибки, которые могут быть связаны с моей проблемой:

483 Begin package load [Toolbox Controls Installer Package] {2C298B35-07DA-45F1-96A3-BE55D91C8D7A} VisualStudio 2015/08/27 08:59:05.832 
484 End package load [Toolbox Controls Installer Package] {2C298B35-07DA-45F1-96A3-BE55D91C8D7A} VisualStudio 2015/08/27 08:59:05.833 
485 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.866 
486 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
487 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
488 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
489 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
490 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
491 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
492 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
493 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
494 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
495 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.867 
496 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
497 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
498 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
499 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
500 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
501 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
502 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
503 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
504 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
505 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
506 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
507 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
508 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.868 
509 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
510 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
511 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
512 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
513 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
514 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
515 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.869 
516 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
517 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
518 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
519 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
520 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
521 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
522 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
523 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
524 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
525 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.870 
526 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
527 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
528 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
529 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
530 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
531 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
532 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
533 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
534 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
535 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
536 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
537 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
538 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
539 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
540 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.871 
541 ERROR Exception parsing Advertised (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
542 ERROR Exception parsing AssemblyFolders (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
543 ERROR Exception parsing Fusion (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
544 ERROR Exception parsing NGen (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
545 ERROR Exception parsing NGenQueue (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
546 ERROR Exception parsing policy (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
547 ERROR Exception parsing Security (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
548 ERROR Exception parsing Windows Presentation Foundation (under HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework) as a version Microsoft.VisualStudio.IDE.ToolboxControlsInstaller.ToolboxInstallerPackage 2015/08/27 08:59:05.872 
549 Done loading new toolbox content, total time = 125 ms 

ответ

1

Изменение файла .cs вызовет восстановление файла конструктора, никоим образом вокруг этого. Я бы рекомендовал частично отделить ваш класс и добавить часто модифицированный код в отдельный файл кода.

1
  1. Внесение изменений в Form.cs в представлении кода, никогда не меняет Form.Designer.cs в нормальных ситуациях. Это не зависит от того, открывается или закрывается представление Designer. Form.cs имеет 2 вида, вид кода и дизайнерский вид. Только внесение изменений в представление Designer приведет к регенерации Form.Designer.cs даже оба вида были открыты.

  2. Не изменяйте Form.Designer.cs вручную или не меняйте дизайнерский вид. Некоторые сторонние компоненты вносят изменения в коды, созданные разработчиком, каждый раз, когда форма отображается в представлении «Дизайнер» и позволяет отображать * на вкладке «VS».

  3. Включение элементов управления в UserControl и размещение UserControl в вашей форме может быть обходным путем. Если вы предоставляете подходящие методы и свойства для UserControl, вам не нужно открывать UserControl Designer, а затем код конструктора никогда не будет создан.

Я просто устроил тест с формой, содержащей сотни стандартных элементов управления окнами. Файл дизайнера был более 14000 строк кода. Я тестировал открытие и изменение файлов с состояниями, которые вы описали (и некоторыми другими состояниями).

  • Form.Designer.cs генерируется только в том случае, если в дизайнере было внесено изменение.
  • Стоимость работы в дизайнере и внесение изменений и, следовательно, реорганизация формы.Designer.cs была высокой.
  • Стоимость строительства приложения в каждом штате была одинаковой (если вы сначала сохранили все файлы).
+0

В моем случае не прикасайтесь к конструктору. Возможно, в прошлом я изменил что-то вручную в файле designer.cs. Может ли это привести к нынешней ситуации? Однако из того, что я знаю, VS создает совершенно новый файл designer.cs, если сборка необходима. – Dominik

+0

После объявления первой тестовой переменной все еще существует. Таким образом, предположение, что designer.cs перестроено, неверно. Я переместил элемент управления в режиме проектирования и после сохранения декларации исчез. Второй тест: * не отображается. Итак, в чем причина блокировки VS в течение 10-15 секунд, если проектный вид открыт. – Dominik