如何在失去焦点时自动保存我的Visual Studio 2015文件?

时间:2015-11-06 19:31:08

标签: visual-studio visual-studio-2015 web-deployment autosave

我在我的课程中使用CSS,HTML和JavaScript,并且我最近开始使用Visual Studio 2015.在Notepad ++中,有一个附加组件允许我一旦失去焦点,我会自动保存所有打开的文档。这节省了我很多时间,因为我经常在我正在处理的页面和编码之间来回走动。

我希望Visual Studio 2015有一个类似的插件,所以我可以在检查我的网页上的工作之前不要忘记保存!有人知道吗?

3 个答案:

答案 0 :(得分:35)

您可以使用以下扩展名Visual Commander在远离Visual Studio时自动保存文件:

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package)
    {
        DTE = DTE_;
        System.Windows.Application.Current.Deactivated += OnDeactivated;
    }

    public void Close()
    {
        System.Windows.Application.Current.Deactivated -= OnDeactivated;
    }

    private void OnDeactivated(object sender, System.EventArgs e)
    {
        try
        {
            DTE.ExecuteCommand("File.SaveAll");
        }
        catch (System.Exception ex)
        {
        }
    }

    private EnvDTE80.DTE2 DTE;
}

答案 1 :(得分:0)

上述解决方案

DTE.ExecuteCommand("File.SaveAll");

在解决方案中有1000多个项目的情况下,速度太慢,即使没有未保存的更改,MSVS UI也会在每次丢失焦点事件时挂起几秒钟,并且会非常消耗CPU。

我已经编辑了OnDeactivated()方法,在我的情况下,它的工作速度更快:

private void OnDeactivated(object sender, System.EventArgs e)
{
    try
    {
        EnvDTE.Documents docs = DTE.Documents;

        for (int i = 1; i <= docs.Count; i++) {
            EnvDTE.Document doc = docs.Item(i);
            if (!doc.Saved) {
                doc.Save();
            }
        }
    }
    catch (System.Exception ex)
    {
    }
}

答案 2 :(得分:0)

执行此操作的扩展名为“自动保存文件”。当Visual Studio失去焦点,文件失去焦点或自上次编辑以来经过了一段指定的时间时,它会保存。默认值为5秒。

https://marketplace.visualstudio.com/items?itemName=HRai.AutoSaveFile