有没有办法让Visual Studio在运行外部工具之前保存文件?

时间:2009-10-15 15:30:12

标签: visual-studio visual-studio-2008

我已经设置了几个外部工具来为我运行Doxygen,无论是在当前显示的文件还是当前活动的项目中。

令人讨厌的是,在运行该工具之前,似乎没有任何选项可以保存文件。

所以我会在一些Doxygen块中敲击,点击热键运行Doxygen,翻到Firefox检查输出,当然.....它是以前的版本。

叹息。

有关如何以良好的方式使其工作的任何线索?

5 个答案:

答案 0 :(得分:5)

您可以创建一个VS宏,首先保存所有文件,然后保存外部工具。

答案 1 :(得分:4)

我使用Visual Commander在VS2013中找到了解决方案。这使您可以返回运行宏的功能。您现在可以创建一个宏来保存所有文件,然后运行外部工具,例如

Imports EnvDTE
Imports EnvDTE80
Imports Microsoft.VisualBasic

Public Class C
    Implements VisualCommanderExt.ICommand

    Sub Run(DTE As EnvDTE80.DTE2, package As Microsoft.VisualStudio.Shell.Package) Implements VisualCommanderExt.ICommand.Run
        DTE.ExecuteCommand("File.SaveAll")
        DTE.ExecuteCommand("Tools.ExternalCommand6" )
    End Sub
End Class

此宏现在可以添加到工具栏或键盘快捷键,而不是直接运行外部工具。

答案 2 :(得分:2)

习惯于尽可能多地按 Ctrl + S ,或者甚至更好地在VS中: Ctrl + Shift + 取值:)

(说真的。我很习惯这样做,Firefox会定期弹出“另存为”对话框来保存这个网站,因为我点击 Ctrl + S 在将答案输入SO时。)

答案 3 :(得分:2)

如果您使用的是Visual Studio 2012或更高版本,则不再有宏。

我使用AutoHotKey脚本解决了这个问题,填补了这个空白。

我是这样做的:

SetTitleMatchMode, 2       ; Title matches if it contains string

#IfWinActive Visual Studio ; The shortcuts below this line are valid when Visual Studio is active
!s::                       ; Alt+s to activate the external tool
    SendInput ^s           ; Sends Ctrl+s to Visual Studio to save the file
    Sleep, 100
    SendInput ^!+\         ; Actual shortcut that activates the desired external tool
return
#IfWinActive               ; Shortcuts below this line will be global

答案 4 :(得分:0)

使用Visual Studio 2005。 它会在运行外部工具之前自动保存所有文件。

(我意识到这通常不会有所帮助,但是当我使用2005年和2012年时,这是我对2012年的主要烦恼之一)