デバッグ前にバッチスクリプトを実行します
-
24-10-2019 - |
質問
デバッグのプログラムを開始する前に、毎回バッチスクリプトを実行したいと思います。
ビルドイベントの場合、そのような機能は、ビルド前のイベント、ビルド後イベントを使用して実現されます。
実際のデバッグについては、脱脂前の非乳剤イベントを見つけることができませんでした。
このシナリオを実現する方法は?
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
それで、あなたはビルド前イベントで実行したい.batファイルを持っていますか?ビルド前のイベントコマンドでバッチファイルへのフルパスを指定してみてください
cmd /c C:\Path\to\foo.bat
また
cmd C:\windows\system32\cmd.exe /c C:\Path\to\foo.bat