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

3

你有没有看过这个答案所建议的类似东西:https://dev59.com/mWct5IYBdhLWcg3wh9xK#12394986? - Mark Hall
4个回答

3

使用Mark Hall的答案,我安装并使用了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;
}

那看上去差不多就是我最終做的。 - Violet Giraffe

2
还有一个免费的工具叫做Visual Commander在Visual Studio Gallery中提供,更多信息请点击此处
从第一个链接中:
自动化重复的任务在Visual Studio IDE中。可以重复使用现有的Visual Studio宏或在C#或VB中创建新的命令和扩展。Visual Commander命令是用C#或VB编写的类,实现Run方法。它具有完全访问Visual Studio自动化模型和.NET框架的权限。来自早期版本的Visual Studio的现有Visual Studio宏代码只需粘贴到新VB命令的Run子程序中。

1
您几乎可以编写一个Visual Studio扩展程序来完成类似的操作。我编写了一个扩展程序VSFileNav,它连接到项目事件以侦听项目中的项被删除/添加等。我想,在项目上(或甚至某些文档窗口)使用稍微不同的事件将允许您执行此操作。

DocumentEventClass.DocumentSaved
DTE.ActiveDocument


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接