Visual studio文件只能用记事本打开

Visual studio file opens only with notepad

本文关键字:记事本 studio 文件 Visual      更新时间:2023-10-16

我在Visual Studio 2010中遇到了一个非常奇怪的问题。

我的程序有一些内存问题,所以我不得不经常重新启动。在最后一次重启后,我的一个头文件被自动损坏了,现在只能用记事本打开(即使是从Visual Studio的内部环境中,在调试时(它只显示我只有汇编代码),或者当我去到这个文件的文件夹并使用"用Visual Studio打开"时,它仍然是记事本打开它)。

我在微软论坛上发现了这个问题,但是那里没有任何解决方案。

我最近遇到了同样的问题。我认为文件被非打印字符损坏;在记事本中看起来很好,只是每一行都缩进了一个空格。

为了解决这个问题,我不得不在记事本中打开文件,然后删除/删除原始文件,通过在项目中添加新项来重新创建它,并从记事本中复制旧文件的内容。

我使用的是VS Express 2013,它对粘贴的文本施加了自己的格式,所以缩进在这一点上消失了。Mercurial不会显示损坏文件和新文件之间的任何差异(除了我刚刚添加的一些代码)。

如果Visual Studio无法识别文件的编码,这通常是文件损坏(在我的情况下,由于电源故障)的情况下,它将默认使用记事本打开文件。

虽然@Sammler很幸运,因为他损坏的文件是可恢复的(通过在一个更宽容的文本编辑器中打开半损坏的文件),但不能保证这将是这种情况,你可能会失去工作/文件内容。

如果你的文件中有null终止字符,就会发生这种情况(也就是'')

同样的事情也发生在我身上。

这发生在我的Windows虚拟机没有响应之后。在我的Mac上使用VMWare Fusion,我设置了"强制关机"。当它恢复时,我正在处理的文件正在记事本中打开,并且看起来是空白的。

我用notepad++打开文件,发现文件内容只是一串NUL字符(以深色背景显示的字符)。我确信VS看到了这一点,并决定它不想与显示损坏的数据有关。显然,强制关闭造成了这种情况,所以我唯一的办法是从源代码控制中获得备份。

也发生在我身上。由于某种原因,我的文件被保存为UNICODE,而不是像我所有其他项目文件那样保存为ANSI。