Visual Studio 2012无法保存/覆盖只读文件。

15

因此,直到我安装了VS2012之前,当我尝试在VS2010中编辑只读文件时,按Save时会弹出一个对话框,给我三个选项:

  • 在内存中编辑
  • 使文件变为可写
  • 保存副本

突然间,它不再提供这些选项了。有没有办法将其恢复,而不是每次都弹出保存对话框,然后告诉我该文件是只读的。

我认为这可能与源代码控制有关,但我使用的项目未绑定到IDE中的源代码控制,只是文件在源代码控制中。


1
FFS!如果想要关闭问题,请解释一下。 - Jon
3
@Jon: 目前已有一张接近投票要将该问题迁移到“SuperUser”,考虑到你所谈论的是工具使用(Visual Studio)和注册表设置,这似乎相当合适。如果你将链接问题中相关的内容带过来,也可以很好地改进这个问题。每个问题(和答案)都应该是完全独立的,不需要链接就可以使用。请注意,在翻译时我会尽力使语言通俗易懂,但不会更改原意。 - David
@David所说的,我只是懒得说而已。 - John Saunders
2
标记为重新开放。Visual Studio问题非常相关。请注意,Visual Studio标签已应用于超过34k个问题。 - dss539
我主要使用Perforce,但即使我将源代码控制插件设置回P4VS,新的行为仍然不允许保存只读文件,而不管在VS2012中的设置如何。 - Peter Nimmo
显示剩余8条评论
6个回答

20

我并没有修改注册表,而是在“工具”>>“选项”>>“源代码控制”>>“插件选择”中选择了“无”。


1
没错,这个可以工作。Git SCM插件破坏了这个功能。 - Roman Starkov
这也发生在Jazz插件中。 - sabertooth1990

4

我最近在使用Visual Studio 2013时遇到了同样的问题。我通过编辑注册表解决了这个问题:

  • 进入HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\SourceControlProviders
  • 删除与GitSccProvider相关联的键

不确定为什么会起作用。我认为这可能与源代码控制集成有关,因为此人在此处通过禁用Mercurial插件解决了类似的问题。


顺便问一句,为什么我装了这个扩展程序?我没看到它列在清单上,也从不用GIT,所以我没有安装的理由? - user2746401
无需完全删除;只需按照已接受答案中的选项取消选择即可。 - Roman Starkov

3
在“工具”->“选项”->“源代码控制”中,选择“当前源代码控制插件”,选择“无”,问题就会解决。

谢谢!Perforce突然自作主张地在我的Visual Studio上启用了Perforce插件,引起了巨大的沮丧! - Tyson Jacobs

3

使用设置复选框:

工具 | 选项... | 环境 | 文档

  • 允许编辑只读文件;在尝试保存时进行警告

此设置始终被活动的源代码控制提供程序覆盖。因此,它只在您将源代码控制插件设置为“无”时才起作用,如@TheArtTrooper的答案所述。 - donovan
这个问题对我来说已经解决了,而且没有在注册表中胡乱操作。 - Chad
很不幸,re donovan的回答并不能解决我的问题。我有一个源代码控制插件,但是我正在编辑解决方案之外的文件,所以插件无法将其检出。我只想进行编辑。:( - Alan Baljeu

2

在 Visual Studio 2012 中,注册表键略有变化。 新的键是:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\SourceControl\AllowUncontrolledInMemoryEditing

将值设置为0将会给你一个你习惯看到的对话框。

3
这与Michael Burr的回答有关,它设置了该注册表值,但仍无法在不出现保存对话框的情况下保存文件。 - Jon

0

你可能会发现这个扩展很有用,因为它可以确保每次加载解决方案时都关闭GIT源代码控制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接