Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio 2008宏仅在宏IDE中工作,而不是在宏资源管理器中工作_Visual Studio_Visual Studio 2008_Macros - Fatal编程技术网

Visual studio Visual Studio 2008宏仅在宏IDE中工作,而不是在宏资源管理器中工作

Visual studio Visual Studio 2008宏仅在宏IDE中工作,而不是在宏资源管理器中工作,visual-studio,visual-studio-2008,macros,Visual Studio,Visual Studio 2008,Macros,编辑:在同一VSMacros项目中创建新模块修复了该问题 只有在从VisualStudio打开宏IDE并从那里运行宏时,以下宏才有效 如果我可以从我的VisualStudio实例的宏资源管理器中右键单击宏,这将非常有用 我一定是做错了什么,但我以前从未使用过VS宏。消息框在这两种情况下都不会出现 Option Strict Off Option Explicit Off Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE9

编辑:在同一VSMacros项目中创建新模块修复了该问题


只有在从VisualStudio打开宏IDE并从那里运行宏时,以下宏才有效

如果我可以从我的VisualStudio实例的宏资源管理器中右键单击宏,这将非常有用

我一定是做错了什么,但我以前从未使用过VS宏。消息框在这两种情况下都不会出现

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
从MSDN上的文章中,我想我找到了另一个可能的答案。该线程的主要建议是:


在“工具、选项”菜单的“加载项/宏安全性”部分,选中复选框“允许宏运行”

宏编辑器中的消息框为:

MsgBox("Your Text Here") = Resultxx

祝你好运。

事实上,“在同一个VSMacros项目中创建一个新模块解决了这个问题。”救了我一天!这与下面标记为正确的“解决方案”无关。如果您使用的是Visual Studio 2010而不是VSMacros,则应在“示例”中创建新模块以解决此奇怪问题。帮助我!