【发布时间】:2010-11-15 04:57:10
【问题描述】:
编辑:在同一个 VSMacros 项目中创建一个新模块解决了这个问题。
仅当我从 Visual Studio 打开宏 IDE 并从那里运行宏时,以下宏才有效。
如果我可以在我的 Visual Studio 实例中右键单击宏资源管理器中的宏,那将更加有用。
我肯定做错了什么,但我以前从未使用过 VS 宏。 MessageBox 在这两种情况下都不会出现。
Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Security.Principal
Imports System.Windows.Forms
Public Module AttachToSdtProcess
Sub AttachToSdtProcess()
Try
'If MessageBox.Show("Attach to SDT.exe", "Caption", _
' MessageBoxButtons.OKCancel) = DialogResult.Cancel Then
'Return
'End If
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim compName As String = WindowsIdentity.GetCurrent().Name
compName = compName.Substring(0, compName.IndexOf("\"))
Dim proc2 As EnvDTE80.Process2 = _
dbg2.GetProcesses(trans, compName).Item("TheExecutable.exe")
If proc2 Is Nothing Then
MessageBox.Show("Could not find TheExecutable.exe")
End If
proc2.Attach2(dbgeng)
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
【问题讨论】:
-
确实,“在同一个 VSMacros 项目中创建一个新模块解决了这个问题。”拯救了我的一天!它与下面标记为正确的“解决方案”无关。
-
如果您使用的是 Visual Studio 2010 而不是 VSMacros,您应该在“示例”中创建新模块来解决这个奇怪的问题。
标签: visual-studio visual-studio-2008 macros