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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Visual Studio中运行外部命令保存在文件中相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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;
}
另一答案

在Visual Studio Gallery中还有一个名为Visual Commander的免费工具,更多信息here

从第一个链接:

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

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

另一答案

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

DocumentEventClass.DocumentSaved DTE.ActiveDocument

另一答案

从版本1.15开始,这个Visual Studio extension可以做你想要的。

以上是关于在Visual Studio中运行外部命令保存在文件中的主要内容,如果未能解决你的问题,请参考以下文章

我将如何创建一个 Visual Studio 外部工具来运行“将项目添加到文件夹...”TFS 命令?

Visual Studio Code-批量在文末添加文本字段

visual studio 2013 在运行.exe 时修改路径变量

是否可以从命令行运行 Visual Studio 转换向导?

Visual Studio 的开发人员命令提示符问题

解决Visual Studio 2017隐藏“高级保存选项”命令