2011-04-21 147 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安裝。

相關問題