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