C# 在Visual Studio 2012中的源代码编辑\保存时运行批处理文件

C# 在Visual Studio 2012中的源代码编辑\保存时运行批处理文件,c#,build,visual-studio-2012,C#,Build,Visual Studio 2012,我试图做到的是,每次在VisualStudio中编辑和保存源文件时,都要运行一个自定义批处理或exe。它不必在每一个文件上运行,我实际上只有12个.cs文件,我想这样做。如果能够使用刚刚保存的文件的参数启动一个新的batch\exe,那就太好了。谢谢。最好的方法是在VS的“工具”菜单下创建一个自定义快捷方式,然后在该快捷方式下运行 添加自定义快捷键的步骤 在“工具”菜单上,选择“选项”,打开“环境”文件夹,然后单击 选择键盘 在键盘页面上,选择键盘映射方案 在“显示包含的命令”文本框中,键入

我试图做到的是,每次在VisualStudio中编辑和保存源文件时,都要运行一个自定义批处理或exe。它不必在每一个文件上运行,我实际上只有12个.cs文件,我想这样做。如果能够使用刚刚保存的文件的参数启动一个新的batch\exe,那就太好了。谢谢。

最好的方法是在VS的“工具”菜单下创建一个自定义快捷方式,然后在该快捷方式下运行

添加自定义快捷键的步骤

  • 在“工具”菜单上,选择“选项”,打开“环境”文件夹,然后单击 选择键盘

  • 在键盘页面上,选择键盘映射方案

  • 在“显示包含的命令”文本框中,键入与命令相关的命令 关键字以在列表框中找到所需的命令。例如 如果要创建打开新解决方案的快捷方式,可以 在此文本框中键入“解决方案”

  • 在滚动列表框中,选择要使用快捷方式的命令 执行

  • 在“在中使用新快捷方式”下拉列表中,选择环境 要在其中使用快捷方式的。如果您需要全局设置,请选择“全局” 在所有环境下工作的快捷方式

  • 将光标置于“按快捷键”文本框中,然后 按住非文本键或非文本键组合(Alt, 按住Ctrl键或Shift键)并键入您选择的文本键

  • 选择分配

  • 当然,您也可以添加一个生成事件,在其上执行文件
    项目建筑。

    最好的方法是在VS的“工具”菜单下创建一个自定义快捷方式,然后在该快捷方式下运行

    添加自定义快捷键的步骤

  • 在“工具”菜单上,选择“选项”,打开“环境”文件夹,然后单击 选择键盘

  • 在键盘页面上,选择键盘映射方案

  • 在“显示包含的命令”文本框中,键入与命令相关的命令 关键字以在列表框中找到所需的命令。例如 如果要创建打开新解决方案的快捷方式,可以 在此文本框中键入“解决方案”

  • 在滚动列表框中,选择要使用快捷方式的命令 执行

  • 在“在中使用新快捷方式”下拉列表中,选择环境 要在其中使用快捷方式的。如果您需要全局设置,请选择“全局” 在所有环境下工作的快捷方式

  • 将光标置于“按快捷键”文本框中,然后 按住非文本键或非文本键组合(Alt, 按住Ctrl键或Shift键)并键入您选择的文本键

  • 选择分配

  • 当然,您也可以添加一个生成事件,在其上执行文件
    项目生成。

    在Visual Studio 2012中,您可以创建一个外接程序,如下所示,它将捕获保存事件并运行批处理文件

    文件>新项目

    选择可扩展性 选择Visual Studio加载项

    在Connect.cs中:

    public void OnConnection(object application, ext_ConnectMode connectMode, 
                             object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
    
        if (_de == null)
        {
            _de = _applicationObject.Events.get_DocumentEvents(null);
        }
        //Handle document saved event
        if (_deSavedEvent == null)
        {
            _deSavedEvent = new _dispDocumentEvents_DocumentSavedEventHandler(
                                                   DocumentEvents_DocumentSaved);
            _de.DocumentSaved += _deSavedEvent;
        }
    }
    
    private static DocumentEvents _de = null;
    private static _dispDocumentEvents_DocumentSavedEventHandler _deSavedEvent =null;
    
    private void DocumentEvents_DocumentSaved(EnvDTE.Document document)
    {
        System.Windows.Forms.MessageBox.Show("Replace this with code to run .bat");
    }
    

    代码示例取自Visual Studio 2012中的

    ,您可以制作一个外接程序,如下所示,它将捕获保存事件并运行批处理文件

    文件>新项目

    选择可扩展性 选择Visual Studio加载项

    在Connect.cs中:

    public void OnConnection(object application, ext_ConnectMode connectMode, 
                             object addInInst, ref Array custom)
    {
        _applicationObject = (DTE2)application;
        _addInInstance = (AddIn)addInInst;
    
        if (_de == null)
        {
            _de = _applicationObject.Events.get_DocumentEvents(null);
        }
        //Handle document saved event
        if (_deSavedEvent == null)
        {
            _deSavedEvent = new _dispDocumentEvents_DocumentSavedEventHandler(
                                                   DocumentEvents_DocumentSaved);
            _de.DocumentSaved += _deSavedEvent;
        }
    }
    
    private static DocumentEvents _de = null;
    private static _dispDocumentEvents_DocumentSavedEventHandler _deSavedEvent =null;
    
    private void DocumentEvents_DocumentSaved(EnvDTE.Document document)
    {
        System.Windows.Forms.MessageBox.Show("Replace this with code to run .bat");
    }
    

    代码示例取自

    我正在寻找一种在保存时触发的方法,无论在VS2012中如何进行保存,这似乎与此相去甚远。不过谢谢您的努力。@AaronStainback抱歉,如果没有某种扩展/插件,我不确定这是否可行。我正在寻找一种在保存时触发的方法,无论在VS2012中如何进行保存,这似乎离这很远。谢谢你的努力。@AaronStainback对不起,如果没有某种扩展/插件,我不确定这是否可行。