Visual Studio Macro IDEを使用して、ビルドが古いか古いかを確認するにはどうすればよいですか?
現在、F5を再マップして、デバッグモードになり、ソリューションを構築せずにブラウザーに接続するカスタムマクロを実行しています。通常、デバッグする前に必ずControl-Shift-Bを押すようにしますが、さらに一歩進んで、このプロセスをマクロにプログラムすることもできると思いました。このセットアップの最良の部分は、前回のビルド以降にコードを変更しなかった場合、通常のデバッグ(F5)モードを使用する場合のように、ソリューションを冗長に再構築することなく、いつでもデバッグにジャンプしたり、デバッグからジャンプしたりできることです。
基本的に、前回のビルド以降にコードが変更されたかどうかを判断するための変数またはプロセスがあるかどうかを知りたいです。
これがマクロ全体で、??? 私がやろうとしていることを示す部分。必要に応じて、自分で使用してください。大規模なソリューションをデバッグするときに、時間を大幅に節約できます。
Imports System
Imports EnvDTE80
Imports System.Diagnostics
Public Module AttachToWebServer
Public Sub AttachToWebServer()
Dim AspNetWp As String = "aspnet_wp.exe"
Dim W3WP As String = "w3wp.exe"
Dim buildIsOld As Boolean
buildIsOld = ???
If buildIsOld Then
' Build the solution and wait for it to finish
DTE.Solution.SolutionBuild.Build(True)
End If
' Are we at a breakpoint?
If DTE.Debugger.CurrentMode = EnvDTE.dbgDebugMode.dbgBreakMode Then
DTE.Debugger.Go() ' Then continue instead of reattaching
Else ' If not, attach to IIS
If Not (AttachToProcess(AspNetWp)) Then
If Not AttachToProcess(W3WP) Then
System.Windows.Forms.MessageBox.Show(String.Format("Process {0} or {1} Cannot Be Found", AspNetWp, W3WP), "Attach To Web Server Macro")
End If
End If
End If
End Sub
Public Function AttachToProcess(ByVal processName As String) As Boolean
Dim processFound As Boolean = False
For Each Process As EnvDTE.Process In DTE.Debugger.LocalProcesses
If (Process.Name.Substring(Process.Name.LastIndexOf("\") + 1) = processName) Then
Process.Attach()
processFound = True
End If
Next
Return processFound
End Function
End Module