我需要一个Resharper的解决方案,因为它显示“无法修改文档”。有人知道它为什么会这样,并且如何解决吗?

80
我在过去的几个月中注意到了几次,有时候我会使用小黄色灯泡图标,右键点击它并选择一个选项让它为我修复某些内容,然后它只会突出显示它要修复的内容,并弹出一个消息,上面写着“无法修改文件”。
有人遇到过这个问题吗? 你知道如何解决吗? 似乎resharper认为该文档是只读的,即使我可以手动编辑该文档。

1
你正在使用Git进行源代码控制吗?你使用的是哪个Git客户端? - John Saunders
是的,我正在使用GIT。我正在使用微软客户端的TFS。 - Curtis
1
对我来说,这是在做一个测试项目时发生的。问题出在git的根目录配置为C:\Source,而测试项目创建在“C:\users<userName>\Documents\Visual Studio 2013\Projects”中,这是VS 2013创建新项目的默认路径。显然,VS的默认项目创建路径不在git源代码控制的根目录内,因此git无法将文件跟踪为“未跟踪”的状态,导致了这个编辑问题。当我将我的测试项目文件夹移动到git的根目录中时,它立即得到解决。 - RBT
1
重启 Visual Studio 对我来说通常是解决问题的办法。 - Robbie Dee
7个回答

176

禁用Visual Studio的源代码控制插件。

  1. 工具 -> 选项 -> 源代码控制
  2. 将"当前源代码控制插件"从"Microsoft Git Provider"更改为"无"

12
如果您想使用它,会发生什么?我猜接受的答案应该没问题吧?只要它在源代码(GIT)中,那就不重要了。 - bdwakefield
2
谢谢!我还得重启Visual Studio才能让修复生效。 - Karle
2
如果您的项目正在使用Git,则无法更改源代码控制提供程序。 但是,该问题似乎仅出现在非版本化的文件中;因此,请使用git客户端(例如TortoiseGit)添加这些文件。 请注意,在Visual Studio中重命名文件不会自动还原/取消添加旧名称并添加新名称,因此您需要再次绕过Visual Studio才能恢复工作环境。 - Zastai
我也试过了,真不可思议这是个解决方法。为了让VS2015正常工作,我必须禁用的东西简直难以置信!!! - Martijn B

29

我在使用Visual Studio 2013时也遇到了同样的问题。
解决方法是将项目添加到版本控制中 (在我的情况下是Git)。

现在,即使您不想提交代码,只需将解决方案添加到版本控制中,该问题就应该消失了。


2
当您将新项目添加到未被VS(或更具体地说 - MS GIT插件)视为GIT源代码控制的目录中时,有时会发生这种情况,而其他项目则是。在我的情况下,这就是原因。将项目目录移动到解决方案文件夹下面即可解决问题。 - Marek
我喜欢禁用Visual Studio源代码控制插件的解决方案,因为这是更常见的情况。如果项目已添加到源代码控制中,则根本没有问题。但是,如果启用了源代码控制插件并且代码未添加到存储库中,则会出现此问题。因此,对我来说,简单地禁用源代码控制插件更加合理。 - Roboblob

5

对我有用的方法是在所需编辑的文件所在的项目中进行卸载和重新加载。(只需右键单击项目,然后从上下文菜单中选择“卸载项目”即可。


2

2022年7月更新:

在将Resharper升级到2022.1版本后,我在使用VS 2019时遇到了这个问题。在升级之前,这个问题是不存在的。

我卸载了Resharper,重启了计算机,重新安装了Resharper(版本为2022.1,与我要升级的版本相同),问题得到了解决。


1

我以管理员身份启动了VS 2013,并打开了项目,现在它可以正常工作。


0

让我稍微晚了一点:

我通过添加 .gitignore 文件并尝试提交我的更改来解决这个错误。

我无法解释这样做是如何解决的,但是这在一个全新的 Git 存储库中发生了。我已经在另一个存储库上使用 Git 和 VS 已经几个月了,该存储库从一开始就有 .gitignore 文件,以前我或者我的团队中没有人遇到过这个问题。


0

更改“Microsoft Git Provider”可以解决问题,但我想要一个永久的解决方案。

我已经在使用GIT,并且在我的.gitignore中有所有的ReSharper内容。我正在使用VS 2015。当我更新到最新版本的ReSharper 2017.1.3时,出现了这个问题。

我备份了我的解决方案文件夹(称之为“repo_backup”),然后从git中克隆了我的repo。一切都恢复正常了。我将我的更改复制到新的重新克隆的repo中,删除了repo_backup,然后继续进行。


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