Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何在Visual Studio中包含新文件后自动保存项目文件?_.net_Visual Studio - Fatal编程技术网

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

.net 如何在Visual Studio中包含新文件后自动保存项目文件?,.net,visual-studio,.net,Visual Studio,在这里使用VisualStudio2010,但是行为从一开始就是一样的-有没有办法在对新文件执行“包含在项目中”后强制IDE自动保存项目文件?刚接触VS的人不会很快养成在每次操作后按Ctrl+Shift+S的习惯,当我们发现捆绑的Web应用程序中缺少资产时,会导致多次回购提交。我认为这是“精心设计的”,因此您可以在不保存到磁盘的情况下创建原型。我同意这应该是一种选择 事实上,如果您正在处理一个由存储库支持的项目,默认情况下它应该保存。如果没有关联的存储库,默认情况下它应该保存在内存中。您可以编写

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

我认为这是“精心设计的”,因此您可以在不保存到磁盘的情况下创建原型。我同意这应该是一种选择


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

您可以编写一个外接程序来实现这一点。不过我还在解决这些问题。扩展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();
    }
}

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

AnkhSVN是否做了您需要的事情?很久很久没有看Ankh了,但会检查+1以摆脱测试代码重构提交周期的激烈竞争。如果AnkhSVN没有做您需要的事情,如果VisualSVN能够满足您的需要,那么您可能需要检查一下—请检查一下优缺点;对于某些对峙(可能有点旧),例如,请看这里:以及您使用的源代码管理,顺便说一句。当使用TFS作为源代码管理时,它会自动“添加到源代码管理”,但仍然不会保存项目(或解决方案)文件。我不知道其他集成源代码管理是否相同。在以前的版本中(至少在2010年),执行比较操作会警告您需要将文件保存到磁盘。现在,当我的更改没有显示在差异中时,我感觉自己快疯了(使用2015)。这似乎正是我所需要的(我的Git提交中经常缺少项目更改也有问题)。你有没有可能在什么地方完整地发表过这篇文章?没有。我在分发这篇文章时遇到了一些奇怪的问题。它在其他任何人的PC上都不起作用。很明显,我做了一些愚蠢的事情,但从来没有弄明白是什么。我该如何将它作为一个插件来实现呢?它在VS11中有效吗?