如何在Visual Studio中包含新文件后自动保存项目文件?

时间:2011-04-21 17:03:11

标签: .net visual-studio

在这里使用Visual Studio 2010,但是自从时间开始以来,行为一直是相同的 - 有没有办法强制IDE在新文件中执行“包含在项目中”后自动保存项目文件? VS新手不会在每次操作之后快速养成Ctrl + Shift + S的习惯,当我们发现捆绑的webapps中缺少资产时,会导致多次repo提交。

3 个答案:

答案 0 :(得分:20)

我曾经一直遇到这种情况,而且非常很烦人。我使用的解决方案是将CTRL+S重新映射到File.SaveAll,因为我已经在使用源代码管理。但是,这对于没有安装此设置的新VS安装没有帮助。

答案 1 :(得分:7)

您可以编写一个插件来实现此目的。我仍在努力解决这些问题。扩展VS很痛苦。

一些摘录:

    public class Connect : IDTExtensibility2
{
    private AddIn _addInInstance;
    private DTE2 _applicationObject;
    private Events2 events;

    public void OnStartupComplete(ref Array custom)
    {
        events = _applicationObject.Events as Events2;
        events.ProjectItemsEvents.ItemAdded += SolutionEvent;
        events.ProjectItemsEvents.ItemRemoved += SolutionEvent;
        events.ProjectItemsEvents.ItemRenamed += 
            new _dispProjectItemsEvents_ItemRenamedEventHandler(
                                    ProjectItemsEvents_ItemRenamed);
    }

    void ProjectItemsEvents_ItemRenamed(ProjectItem projectItem, 
                                        string OldName)
    {
        Save(projectItem);
    }

    private void SolutionEvent(ProjectItem projectItem)
    {
        Save(projectItem);
    }

    void Save(ProjectItem projectItem)
    {
        if (!projectItem.ContainingProject.Saved)
            projectItem.ContainingProject.Save();
    }
}

答案 2 :(得分:0)

我认为这是“按设计”,因此您可以在不保存到磁盘的情况下对原型进行原型设计。我同意这应该是一个选择。

实际上,如果您正在处理由存储库支持的项目,则默认情况下应该保存。如果没有关联的存储库,默认情况下它应该保留在内存中。