【问题标题】:How to automatically save project file after a new file include in Visual Studio?如何在 Visual Studio 中包含新文件后自动保存项目文件?
【发布时间】:2011-04-21 17:03:11
【问题描述】:

在这里使用 Visual Studio 2010,但行为从一开始就相同 - 有没有办法强制 IDE 在对新文件执行“包含在项目中”后自动保存项目文件?刚接触 VS 的人不会在每次执行这些操作后很快养成 Ctrl+Shift+S 的习惯,当我们发现捆绑的 web 应用程序中缺少资产时,会导致多次 repo 提交。

【问题讨论】:

  • AnkhSVN 能满足您的需求吗?
  • 好久没看Ankh了,不过会看看
  • +1 表示努力摆脱测试-代码-重构-提交周期的激烈竞争。
  • 也许如果 AnkhSVN 做你需要的,那么看看 VisualSVN 是否能做你需要的可能是值得的——看看利弊;对于一些对峙(可能有点老),例如看这里:SVN in Visual StudioVisualSVN or AnkhSVN?
  • 你使用的是什么源代码控制,顺便说一句。

标签: .net visual-studio


【解决方案1】:

我以前经常遇到这种情况,这非常很烦人。我使用的解决方案是将CTRL+S 重新映射到File.SaveAll,因为我已经在使用源代码控制。但是,这对未进行此设置的新 VS 安装没有帮助。

【讨论】:

    【解决方案2】:

    您可以编写一个插件来实现这一点。不过,我仍在解决这些错误。扩展 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();
        }
    }
    

    【讨论】:

    • 似乎正是我所需要的(在我的 Git 提交中经常丢失项目更改也有问题)。你有没有机会在某个地方完整地发表了这篇文章?
    • 没有。我在尝试分发它时遇到了奇怪的问题。它只是无法在其他任何人的 PC 上运行。显然我在做一些愚蠢的事情,但从未弄清楚是什么。
    • 我将如何将其作为插件实现?它可以在 VS 11 中工作吗?
    【解决方案3】:

    我认为这是“设计使然”,因此您无需保存到磁盘就可以制作原型。我同意它应该是一个选项。

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

    【讨论】:

    • 当使用 TFS 作为源代码管理时,它会自动“添加到源代码管理”,但仍然不保存项目(或解决方案)文件。不知道其他集成源码控制是不是也一样。
    • 在以前的版本中(至少在 2010 年),执行比较操作会警告您需要将文件保存到磁盘。现在,当我的更改没有出现在差异中时,我感觉自己快疯了(使用 2015 年)。
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多