質問

デバッグのプログラムを開始する前に、毎回バッチスクリプトを実行したいと思います。

ビルドイベントの場合、そのような機能は、ビルド前のイベント、ビルド後イベントを使用して実現されます。

実際のデバッグについては、脱脂前の非乳剤イベントを見つけることができませんでした。

このシナリオを実現する方法は?

VS2008、.NETフレームワーク3.5、C#アプリケーションを使用しています。

私は、外部バッチファイルを起動するアプリケーション内でいくつかの追加のコード行を作成するというアイデアに反対しています。

役に立ちましたか?

解決

私はあなたが追加のコードを避けたいと思ったことを理解していますが、あなたの中で Main 使用できる機能 Debugger.IsAttached() あなたのためにあなたの仕事を始めるために。

例えば:

if (Debugger.IsAttached)
{
     System.Diagnostics.Process.Start(@"C:\myBatchFile.bat");
}

他のヒント

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

イベントハンドラーをマクロに追加する方法についてはかなり良い説明があります ここ

私がこれまでに抱えている唯一の問題は、現在デバッグされているアプリケーションActive Directoryを取得する方法を把握することです

if $(ConfigurationName) == Debug mkdir c:\mydir

チェックアウトする必要があります... デバッグビルドのみのためにビジュアルスタジオポストビルドイベントを実行する方法

「プリビルドイベント」でデバッグする前にスクリプトを実行するには:

プロジェットの「プロパティ」にコマンドラインを追加>「イベントのビルド」:

cmd /ci: foo.bat

ここの良い例=> https://stackoverflow.com/a/57570301/2736742

それで、あなたはビルド前イベントで実行したい.batファイルを持っていますか?ビルド前のイベントコマンドでバッチファイルへのフルパスを指定してみてください

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

また

cmd C:\windows\system32\cmd.exe /c C:\Path\to\foo.bat
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top