Use the following visual studio extension in order to recreate the macros that you were used to using in VS 2010 and below
http://vlasovstudio.com/visual-commander/
Also to run the macro, try using the Ctrl+Q shortcut menu in VS 2013, as follows
Or customise your toolbar
The attach to process macro will now look like this as a new Visual Commander command using VB v4.0 language
Imports EnvDTE
Imports EnvDTE80
Imports Microsoft.VisualBasic
Public Class C
Implements VisualCommanderExt.ICommand
Sub Run(DTE As EnvDTE80.DTE2, package As Microsoft.VisualStudio.Shell.Package) Implements VisualCommanderExt.ICommand.Run
AttachToProcess("MyProcessName.exe", DTE)
End Sub
Private Sub AttachToProcess(ByVal ProcessName As String, DTE As EnvDTE80.DTE2, Optional ByVal Script As Boolean = False)
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
If Script Then
dbgeng(0) = trans.Engines.Item("Script")
'Array.Resize(dbgeng, 1)
Else
dbgeng(0) = trans.Engines.Item("Managed")
End If
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, System.Environment.MachineName).Item(ProcessName)
Call proc2.Attach2(dbgeng)
Catch ex As System.Runtime.InteropServices.COMException
Select Case ex.ErrorCode
Case -2147352565
ShowMessage(ProcessName & " is not currently a running process")
Case -1989083106
ShowMessage("You are already attached to " & ProcessName)
Case Else
ShowMessage("Unhandled error message from Attach to process macro")
End Select
Catch ex As System.Exception
MsgBox("Unhandled exception occurred: " & ex.Message)
End Try
End Sub
Private Sub ShowMessage(ByVal message As String)
Call MsgBox(message, MsgBoxStyle.Exclamation, "Attach to process macro")
End Sub
End Class
http://vlasovstudio.com/visual-commander/
Also to run the macro, try using the Ctrl+Q shortcut menu in VS 2013, as follows
Or customise your toolbar
The attach to process macro will now look like this as a new Visual Commander command using VB v4.0 language
Imports EnvDTE
Imports EnvDTE80
Imports Microsoft.VisualBasic
Public Class C
Implements VisualCommanderExt.ICommand
Sub Run(DTE As EnvDTE80.DTE2, package As Microsoft.VisualStudio.Shell.Package) Implements VisualCommanderExt.ICommand.Run
AttachToProcess("MyProcessName.exe", DTE)
End Sub
Private Sub AttachToProcess(ByVal ProcessName As String, DTE As EnvDTE80.DTE2, Optional ByVal Script As Boolean = False)
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
If Script Then
dbgeng(0) = trans.Engines.Item("Script")
'Array.Resize(dbgeng, 1)
Else
dbgeng(0) = trans.Engines.Item("Managed")
End If
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, System.Environment.MachineName).Item(ProcessName)
Call proc2.Attach2(dbgeng)
Catch ex As System.Runtime.InteropServices.COMException
Select Case ex.ErrorCode
Case -2147352565
ShowMessage(ProcessName & " is not currently a running process")
Case -1989083106
ShowMessage("You are already attached to " & ProcessName)
Case Else
ShowMessage("Unhandled error message from Attach to process macro")
End Select
Catch ex As System.Exception
MsgBox("Unhandled exception occurred: " & ex.Message)
End Try
End Sub
Private Sub ShowMessage(ByVal message As String)
Call MsgBox(message, MsgBoxStyle.Exclamation, "Attach to process macro")
End Sub
End Class
No comments:
Post a Comment