C# 我在Visual Studio中的项目是只读的。我做了什么?

C# 我在Visual Studio中的项目是只读的。我做了什么?,c#,visual-studio,readonly,C#,Visual Studio,Readonly,我一定做错了什么。我在VisualStudio2008中有一个C#项目。突然,我看到我的类上有一个锁,当我将类名悬停在顶部选项卡上时,我看到类名为:C:\Myprojects\order.cs[只读] 你以前有过类似的怪事吗?我想到了几种可能性: 您是否已将项目添加到源代码管理中 是否已将项目文件夹(及其所有子文件夹)标记为只读 当然,如果其他人已经访问了您的计算机,他们可能已经做了这两件事。IDE集成源代码管理?听起来您的源文件正在或已经在源代码管理下。许多源代码管理系统会在文件未签出进行编辑

我一定做错了什么。我在VisualStudio2008中有一个C#项目。突然,我看到我的类上有一个锁,当我将类名悬停在顶部选项卡上时,我看到类名为:C:\Myprojects\order.cs[只读]


你以前有过类似的怪事吗?

我想到了几种可能性:

您是否已将项目添加到源代码管理中

是否已将项目文件夹(及其所有子文件夹)标记为只读


当然,如果其他人已经访问了您的计算机,他们可能已经做了这两件事。

IDE集成源代码管理?

听起来您的源文件正在或已经在源代码管理下。许多源代码管理系统会在文件未签出进行编辑时将其设置为只读


使递归更改文件属性变得非常容易,但Windows很可能也可以做到这一点:)

重新启动计算机对我来说很有用。在编译之间,我的项目变成了只读-突然我无法保存对文件的更改,Visual Studio开始向我显示“另存为”对话框,SVN无法提交或清理项目,因为“sqlite无法写入只读数据库”在Windows资源管理器中检查这些文件的文件属性时,发现没有一个文件被标记为只读。我能够备份项目,然后重新启动,一切正常。

在我的情况下,这是一个与ReSharper 9.0/9.1相关的问题。清除ReSharper缓存后,我可以再次编辑解决方案中的文件

可以在此处清除ReSharper缓存:
ReSharper->Options->Environment->General
,然后单击:清除缓存,然后重新启动visual studio

(图像包含在第一篇链接的JetBrains文章中)

JetBrains说明:


重新启动Visual Studio并再次添加项目。为我工作。

与Morten Mertner所说的非常一致(如果您碰巧像我一样使用TFS源代码管理),我对文件进行了手动签出,它为我解决了问题。

对我来说,问题是在应用程序运行时文件被锁定

在此状态下,Visual Studio 2013会在“文件”选项卡中显示锁定图标,当您尝试编辑文件时,会出现一个对话框,其中显示以下消息:

不允许对此模块进行更改,因为它不是为调试时的更改而生成的,或者目标.NET运行时版本不支持它

在Visual Studio 2015中,应用程序运行时,“文件”选项卡中也会显示锁定图标。但不会显示对话框和消息


停止应用程序会导致文件解锁。

一件可能愚蠢的事情

您的项目仍在运行,但您忘记了这一点。停止调试(CTRL+F5)


我怎么知道。猜..

关闭,然后重新打开文件


仍然很痛苦,但至少比完全关闭visual studio成本更低。

您可以尝试:文件->源代码管理->联机

您对这些文件有任何类型的源代码管理吗?如果是这样,那么您需要先签出它们,然后才能编辑它们(否则它们会被标记为只读)…或者在Windows资源管理器中选择它们,右键单击并取消选中“属性”下的只读设置。很可能是非IDE集成源代码管理。正在关闭挂锁符号-认为它们可能是由IDE插件放在那里的。显然不是,但是…谢谢你,就是这样,但是如何防止它再次这样做呢?它是重复进行的,似乎没有模式,令人沮丧。令人尴尬,但我的问题是我无意中启动了调试器。我在源代码管理中添加了一个项目。文件夹被自动设置为只读,所以我必须编辑它。@JasoonS我也是,当按F5时会发生这种情况!只需转到“调试”->停止调试即可撤消此答案为什么被否决?这对我很有效!