【问题标题】:How to use "ReSharper.ReSharper_SilentCleanupCode" in a vs2010 macro?如何在 vs2010 宏中使用“ReSharper.ReSharper_SilentCleanupCode”?
【发布时间】:2012-04-11 04:40:13
【问题描述】:

我正在尝试构建一个宏,在保存之前格式化所有修改过的文件。

Public Module ReformatAndSave

Sub SingleFile()
    DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")
    DTE.ActiveDocument.Save()
End Sub

Sub AllFiles()
    For Each doc As Document In DTE.Documents
        If Not doc.Saved Then
            doc.Activate()
            DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")
            DTE.ActiveDocument.Save()
        End If
    Next
End Sub
End Module

这会导致错误

对 COM 组件的调用已返回错误 HRESULT E_FAIL。

当我改用它时它会起作用:

DTE.ExecuteCommand("ReSharper.ReSharper_CleanupCode")

对于单个文件,我可以接受这种解决方案,但在保存所有文件时选择配置文件很烦人。

我使用 ReSharper 6.1.1000.82。这个错误似乎相当古老:http://youtrack.jetbrains.com/issue/RSRP-179846

是否可以通过收集所有修改的文件并为所有文件执行一次有效的 CleanUpCode 命令来解决此错误。 我可以手动选择许多文件并手动对这些文件执行清理。我想在保存时自动对所有修改过的文件执行此操作。

【问题讨论】:

    标签: vb.net visual-studio-2010 exception macros resharper


    【解决方案1】:

    解决方案非常简单。 我所要做的就是替换这个

    DTE.ExecuteCommand("ReSharper.ReSharper_CleanupCode")
    

    有了这个

    DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
    

    这行不通!

    DTE.ExecuteCommand("ReSharper.ReSharper_SilentCleanupCode")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2014-08-24
      • 2016-02-13
      相关资源
      最近更新 更多