Запустите пакетный скрипт перед отладкой - PullRequest
9 голосов
/ 15 марта 2011

Я хочу запускать пакетный скрипт каждый раз перед запуском программы для отладки.

Для событий сборки такая функциональность реализуется с использованием события перед сборкой, события после сборки.

Для фактической отладки я не смог найти никаких событий до отладки, после отладки.

Как реализовать этот сценарий?

Я использую VS2008, .net Framework 3.5, приложение c #.

Я против идеи создания в приложении дополнительных строк кода, которые бы запускали внешний командный файл.

Ответы [ 4 ]

9 голосов
/ 09 ноября 2011

Я понимаю, что вы хотели избежать дополнительного кода, но в вашей функции Main вы могли бы использовать Debugger.IsAttached(), чтобы начать работу за вас.

Например:

if (Debugger.IsAttached)
{
     System.Diagnostics.Process.Start(@"C:\myBatchFile.bat");
}
4 голосов
/ 09 ноября 2011

Вы можете использовать макрос VS.

У меня была такая же проблема, и это лучшее, с чем я пришел до сих пор

Dim MustUpdateDB As Boolean

    Private Sub DebuggerEvents_OnEnterRunMode(ByVal Reason As EnvDTE.dbgEventReason) Handles DebuggerEvents.OnEnterRunMode
        If (MustUpdateDB) Then
            MsgBox("Start debug operation", MsgBoxStyle.OkOnly, "TITLE")
            REM DO WHATEVER COMMAND HERE
            REM  System.Diagnostics.Process.Start("C:\listfiles.bat")
            MustUpdateDB = False
        End If


    End Sub

    Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
        MsgBox("Build Done", MsgBoxStyle.OkOnly, "Title")
        MustUpdateDB = True
    End Sub

Есть довольно хорошее объяснение того, как добавитьобработчики событий для макроса здесь

Единственная проблема, которую я имею до сих пор, состоит в том, чтобы выяснить, как получить активный каталог отлаженного в данный момент приложения

0 голосов
/ 11 мая 2011

Итак, у вас есть файл .bat, который вы хотите запустить через событие перед сборкой?Попробуйте указать полный путь к вашему пакетному файлу в команде события перед сборкой, например,

cmd /c C:\Path\to\foo.bat

или

cmd C:\windows\system32\cmd.exe /c C:\Path\to\foo.bat
0 голосов
/ 15 марта 2011
if $(ConfigurationName) == Debug mkdir c:\mydir

Вы должны проверить ... Как запустить события пост-сборки Visual Studio только для отладочной сборки

...