2011-04-21 83 views
26

在这里使用Visual Studio 2010,但行为自创建以来一直相同 - 是否有办法强制IDE在对新文件执行“包含项目”之后自动保存项目文件? VS的新手们在每次操作后都不会很快习惯Ctrl + Shift + S,当我们发现捆绑的webapps中缺少资产时,会导致多次repo落实。如何在Visual Studio中包含新文件后自动保存项目文件?

+0

AnkhSVN做你所需要的吗? – GregC 2011-04-21 17:08:20

+0

很久很久没有看过Ankh了,但会检查出 – 2011-04-21 17:19:03

+0

+1是为了努力摆脱测试代码重构提交周期的老鼠赛跑。 – GregC 2011-04-21 17:24:05

回答

0

我认为这是“通过设计”,这样你就可以原型而不需要保存到磁盘。我同意它应该是一个选项。

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

+1

当使用TFS作为源代码控件时,它会自动执行“添加到源代码管理”,但仍不保存项目(或解决方案)文件。我不知道其他集成源代码管理是否相同。 – 2011-10-15 20:46:32

6

你可以写一个加入来实现这一点。尽管如此,我仍然在处理这些错误。扩展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(); 
    } 
} 
+0

似乎正是我所需要的(在我的Git提交中经常缺失项目更改也存在问题)。你有没有在任何地方发表过这些内容? – 2012-03-27 01:11:28

+0

不,我有奇怪的问题试图分发它。它不适用于其他人的个人电脑。很明显,我在做一些愚蠢的事情,但从来没有想出什么。 – Sam 2012-04-04 05:12:39

+0

我该如何去实现这个插件?它会在VS 11中工作吗? – 2012-10-11 17:59:14

15

我曾经碰到这一切的时候,这是非常恼人。我使用的解决方案是将CTRL+S重新映射到File.SaveAll,因为我已经在使用源代码管理。然而,这并没有帮助没有安装这个设备的新的VS安装。

相关问题