在Visual Studio中运行外部命令保存在文件中

时间:2013-09-24 15:33:29

标签: visual-studio-2012

我正在阅读有关将cppcheck集成到VS中的文章:http://www.codeproject.com/Tips/472065/Poor-Man-s-Visual-Studio-Cppcheck-Integration

我想在保存文件时运行检查,本文将对此进行介绍。但是,文章提到的是Macros IDE,它显然是从VS2012中删除的。还有其他办法吗?

4 个答案:

答案 0 :(得分:2)

Visual Studio库中还提供了一个名为Visual Commander的免费工具,更多信息here

来自第一个链接:

  

在Visual Studio IDE中自动执行重复性任务。 重用现有的Visual Studio宏或在C#或VB中创建新的命令和扩展。

     

Visual Commander命令是用C#或VB编写的实现Run方法的类。它可以完全访问Visual Studio自动化模型和.NET框架。以前版本的Visual Studio中现有Visual Studio宏的代码只能粘贴到新VB命令的Run子例程中。

答案 1 :(得分:2)

使用Mark Hall's answer,我安装并使用Visual Commander做类似的事情。这是我的扩展,当我的项目中的文件(" my-project")被保存时,它运行第一个外部工具:

using EnvDTE;
using EnvDTE80;

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package)
    {
        DTE = DTE_;
        events = DTE.Events;
        documentEvents = events.DocumentEvents;
        documentEvents.DocumentSaved += OnDocumentSaved;        
    }

    public void Close()
    {
        documentEvents.DocumentSaved -= OnDocumentSaved;
    }

    private void OnDocumentSaved(EnvDTE.Document doc)
    {
        if(doc.Path.ToLower().Contains("my-project")) DTE.ExecuteCommand("Tools.ExternalCommand1");
    }

    private EnvDTE80.DTE2 DTE;
    private EnvDTE.Events events;
    private EnvDTE.DocumentEvents documentEvents;
}

答案 2 :(得分:1)

你几乎可以肯定地写一个视觉工作室扩展来做这些事情。我写了一个扩展VSFileNav,它连接到项目事件来监听被删除/添加的项目等。我想项目上的一个稍微不同的事件(或者甚至可能是一些文档窗口)会让你做这样的事情

DocumentEventClass.DocumentSaved
DTE.ActiveDocument

答案 3 :(得分:1)

Visual Studio extension自1.15版以来可以做您想要的事情。