【问题标题】:Replacement macro not working in Visual Studio替换宏在 Visual Studio 中不起作用
【发布时间】:2019-02-06 09:52:52
【问题描述】:

我想在 Visual Studio 2008 中使用宏进行自动字符串替换。我已经使用记录器创建了宏(参见下面的代码),但它不起作用(尽管在交互模式下替换工作正常)。

我希望将替换应用于当前文档中的当前选择。我很惊讶地看到文件的名称 (Text.txt) 显式出现,因此宏可能无法在另一个文件上运行,但它在那个文件上无论如何都不起作用。

这里是宏源码:

Sub Multiline()
    DTE.ExecuteCommand("Edit.Replace")
    DTE.Windows.Item("Text.txt").Activate()
    DTE.Find.FindWhat = "$"
    DTE.Find.ReplaceWith = "\n\n"
    DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentSelection
    DTE.Find.MatchCase = True
    DTE.Find.MatchWholeWord = False
    DTE.Find.MatchInHiddenText = True
    DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
    DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
    DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
    If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
        Throw New System.Exception("vsFindResultNotFound")
    End If
End Sub

供参考,对应的替换对话框:

有什么提示吗?为什么会失败?

【问题讨论】:

    标签: visual-studio replace macros


    【解决方案1】:

    知道了,我是 Windows 更新中已知问题的受害者,影响了 Visual Studio。

    https://support.microsoft.com/en-us/help/2934830/marshaling-of-reflection-types-may-not-work-over-dcom-after-you-instal

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2010-12-26
      相关资源
      最近更新 更多