VS2008 / C # Закрыть все дизайнеры, когда проект компилируется? - PullRequest
0 голосов
/ 17 декабря 2009

У конструкторов C # в VS2008 есть некоторые проблемы, например, иногда они «забывают» элемент управления при компиляции проекта. Дизайнер особенно склонен забывать пользовательские элементы управления.

Некоторое время назад я погуглил, чтобы обойти это - нашел этот совет: закройте все дизайнеры перед компиляцией проекта.

Это действительно помогает?

И есть ли способ сделать это автоматически? (Pre-Compile-Script и т. Д.?)

Ответы [ 2 ]

2 голосов
/ 17 декабря 2009

Я не знаю, ищите ли вы это, но если вы откроете командное окно, вы можете набрать:

>CloseAll
>Build.BuildSolution
1 голос
/ 17 декабря 2009

Вот макрос, который закрывает все дизайнеры и оставляет текстовые файлы открытыми:

Sub CloseAllDesigners()
    Dim doc As Document
    For Each doc In DTE.Documents
        Dim win As Window
        For Each win In doc.Windows
            Select Case TypeName(win.Object)
                Case "TextWindow", "HTMLWindow"
                    'keep opened
                Case Else
                    'close
                    win.Close(vsSaveChanges.vsSaveChangesPrompt)
            End Select
        Next
    Next
End Sub

См. Мое краткое руководство , как создать и выполнить макрос VS и назначить ему комбинацию клавиш или кнопку. Вы можете даже автоматически выполнить этот макрос перед каждой сборкой. В Макрос IDE Class View перейдите к MyMacros - EnvironmentEvents. Откройте (двойной щелчок) EnvironmentEvents. Вставьте следующий код внутри модуля:

Private Sub BuildEvents_OnBuildBegin( _
  ByVal Scope As EnvDTE.vsBuildScope, _
  ByVal Action As EnvDTE.vsBuildAction) _
  Handles BuildEvents.OnBuildBegin

    CloseAllDesigners()
End Sub
...