保存失败时运行 resharper 静默清理
Posted
技术标签:
【中文标题】保存失败时运行 resharper 静默清理【英文标题】:Run resharper silent cleanup on save fails 【发布时间】:2012-05-31 20:10:13 【问题描述】:我正在尝试使用 Resharper 的清理代码功能在保存时清理我的代码。我制作了一个处理DocumentSaved
事件的宏。重要部分:
Private Sub DocumentEvents_DocumentSaved(ByVal document As EnvDTE.Document) _
Handles DocumentEvents.DocumentSaved
...
DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
document.Save()
End Sub
每次保存时,我都会收到一条异常消息,上面写着Error HRESULT E_FAIL has been returned from a call to a COM component.
有什么想法吗?
注意:我看到了How can I configure ReSharper's code cleanup on save?,它在我的情况下不起作用,因为我需要响应保存事件。将宏映射到 CTRL+S 是不够的。
【问题讨论】:
【参考方案1】:我认为这是因为当您调用document.Save()
时,它会再次递归并保存,然后它会崩溃。试试这个:
Private Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved
Static currentDocument As EnvDTE.Document
If Not currentDocument Is Document Then
currentDocument = Document
DTE.Windows.Item(Document.Name).Activate()
DTE.ExecuteCommand("ReSharper_SilentCleanupCode")
DTE.ActiveDocument.Save()
End If
End Sub
这对我有用
【讨论】:
以上是关于保存失败时运行 resharper 静默清理的主要内容,如果未能解决你的问题,请参考以下文章
从 Cocoa 应用程序(通过 NSTask)静默运行 xcodebuild 两次失败