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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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 2008将不会编辑只读文件_.net_Visual Studio_Visual Studio 2008_Ide - Fatal编程技术网

.net Visual Studio 2008将不会编辑只读文件

.net Visual Studio 2008将不会编辑只读文件,.net,visual-studio,visual-studio-2008,ide,.net,Visual Studio,Visual Studio 2008,Ide,因此,直到今天,当我试图在VS2008中编辑只读文件时,弹出了一个对话框,给了我三个选项: 在内存中编辑 使可写 保存副本 还有一个复选框,上面写着“决不允许在内存中编辑” 突然,它停止提供这些选项,如果文件是只读的,它将不接受编辑器窗口中的任何输入。我必须进入windows资源管理器,将文件标记为非只读,然后在VS中重新打开它,然后才能进行任何更改。我在一个大型项目中工作,有很多受源代码控制的文件,经常需要对文件进行仅本地更改,所以这是一个真正的PITA 我猜我一定是错误地勾选了“不允许在

因此,直到今天,当我试图在VS2008中编辑只读文件时,弹出了一个对话框,给了我三个选项:

  • 在内存中编辑
  • 使可写
  • 保存副本
还有一个复选框,上面写着“决不允许在内存中编辑”

突然,它停止提供这些选项,如果文件是只读的,它将不接受编辑器窗口中的任何输入。我必须进入windows资源管理器,将文件标记为非只读,然后在VS中重新打开它,然后才能进行任何更改。我在一个大型项目中工作,有很多受源代码控制的文件,经常需要对文件进行仅本地更改,所以这是一个真正的PITA

我猜我一定是错误地勾选了“不允许在内存中编辑”复选框

工具中有一个选项。。选项。。环境文件内容如下:

允许编辑只读文件,尝试保存时发出警告

勾选此复选框,并将其当前值更改为无效。我尝试过关闭和打开工作室,重启我的机器等等,但都没有用


有人知道如何恢复以前的行为吗?

实际上,最合乎逻辑的做法是:

  • 如果不打算编辑文件,请将其标记为只读
  • 如果文件要编辑,请将其标记为可写 这部分是只读属性的全部要点

    如果你认为我是错的,当然,是我的错,但是其他人在逻辑上应该同意我的观点,因为目前还不太清楚为什么你需要用错误的方式使用东西


    直到解释被扩展,你的问题与抱怨相一致,为什么当你删除某件东西时,你就不能再把它拿回来。 如果有人感兴趣,将以下注册表项重置为0将恢复以前的行为:

    HKCU\Sofware\Microsoft\Visual Studio\9.0\Source Control\UncontrolledInMemoryEditDialogSuppressed
    

    我在VisualStudio2010中也做了同样的事情。对话框的措辞不完全清楚。 问题(以及温斯顿的解决方案)在VisualStudio2010中也是一样的。 因此,在注册表中将其设置为0:


    HKEY\U CURRENT\U USER\Software\Microsoft\Visual Studio\10.0\Source Control\UncontrolledMemoryeditDialogSuppressed

    在同一注册表位置,似乎还有其他注册表变量在起作用

    如前所述,转到HKEY\U CURRENT\U USER\Software\Microsoft\Visual Studio\10.0\Source Control\

    并重置以下三项:

    • 允许非受控内存编辑
    • AllowInMemoryEditing
    • 不受控制的MemoryEdit对话框已抑制
    回到零


    (这似乎让我自己的编译器一路回到了“出厂默认”状态。)

    我今天也遇到了同样的问题,在工具->选项->源代码管理中发现所选的源代码管理已被更改。所以您可能需要验证所选的源代码管理系统是否符合您的预期。

    一些愚蠢的版本管理系统将文件标记为只读,或者有时,当文件从另一个源复制到计算机时,属性会被带过来,而不是由用户显式设置。。。我个人认为写保护文件的SourceSafe模型是胡说八道。我不应该为了修改它而翻动一点或签出一个文件。只有在我提交时,我才需要了解更改。你没有抓住要点。我不想在如何使用我的文本编辑器方面接受再教育,我想知道是否有任何方法可以恢复昨天存在的行为,我可以在不切换应用程序的情况下进行本地更改。谢谢你的洞察力。你希望有人(又称我)回应这个答案,这样你就可以将你的问题标记为已回答吗?