【问题标题】:Recover a .CS class file after crash崩溃后恢复 .CS 类文件
【发布时间】:2011-11-29 04:33:23
【问题描述】:

我正在 Visual Studio 2010 上上课,突然我的电脑崩溃了。我重新启动计算机后。我启动了 Visual Studio,发现该类完全是空的。 它在课前包含了 1000 多行代码。 无论如何我可以恢复那个文件吗?

请帮忙,因为我没有它的另一个副本(我很愚蠢)

【问题讨论】:

  • @Oded,我想我们可以从I don't have another copy of it 推断出不涉及源代码控制。
  • 对不起,我不知道你所说的源代码控制是什么意思。我正在开发一个 ASP.NET C# 应用程序,丢失的类包含我在应用程序中使用的许多方法

标签: visual-studio-2010 file-recovery


【解决方案1】:

嗯,最近发生在我身上,我确实以这种方式取回了我的文件。

1. Find the project DLLs in the bin folder. Example MySolution.dll
2. Download and Install .Net Reflector from https://www.red-gate.com/products/dotnet-development/reflector/trial/thank-you
3. Open the .Net Reflector app and click the open folder icon then move to your bin directory and select MySolution.dll file
4. Then traverse and expand through your namespaces and classes to look into your codes.
5. Have fun! 

【讨论】:

    【解决方案2】:

    非常有用的问题。我的电脑突然关机时出现文件崩溃的问题。使用“Recuva”(下载链接:https://filehippo.com/download_recuva/)软件恢复文件。扫描未删除的文件很有帮助。

    我得到了帮助:https://www.samnoble.co.uk/2014/11/30/visual-studio-crashes-and-a-corrupted-cs-file/

    【讨论】:

      【解决方案3】:

      在 Visual Studio 2019 中,我在具有 TMP 扩展名的文件中找到该文件

      文件名.cs~xxxxxxxx.TMP

      【讨论】:

      • 我的情况也是如此。您是如何从该 TMP 文件中恢复的?
      • 文件为纯文本文件,带TMP扩展名,用任意文本编辑器打开
      • 谢谢你,你救了我的命!
      【解决方案4】:

      当 Visual Studio 崩溃或系统意外关闭时,我也遇到过几次这种情况。您可以使用 Recuva 恢复这些损坏的文件。它不会每次都恢复文件,但在大多数情况下它都能正常工作。

      以下是您在恢复之前需要配置的设置。

      1. 启动 Recuva。如果向导启动,请进入高级模式。
      2. 点击选项。
      3. 在“选项”对话框中,单击“操作”选项卡。
      4. 单击扫描未删除的文件,然后单击确定。
      5. 正常运行 Recuva 扫描。未删除的文件用绿色的双圈状态图标表示。

      希望您会在恢复的文件中找到损坏的文件,因为它会恢复该文件的多个版本。

      【讨论】:

        【解决方案5】:

        如果您找不到源代码文件,请尝试使用Reflector 反编译您最近构建的包含该类的 dll。它不会给你完整的来源,但至少会给你一些开始的东西。

        注意:Reflector 不再免费;如果这很重要,请尝试使用 JetBrains 的 dotPeek

        另外,考虑使用source code control 系统。这将使您可以将代码的版本“提交”到存储库,因此您将拥有一份副本,以防将来发生类似情况。

        SubversionGitMercurial 是受欢迎的;在我看来,Subversion 是最容易上手的,尤其是使用TortoiseSVN(操作系统集成)和AnkhSVN(Visual Studio 集成)。如果您不想担心设置存储库/服务器,请查看托管解决方案,例如 Beanstalk,它提供 Subversion 和 Git,并允许您使用受限帐户免费试用。

        祝你好运 - 我希望你能够恢复你的来源!

        【讨论】:

        • .NET Reflector 有 14 天的免费试用期,非常适合恢复损坏的文件。以下是您可以期待的: 所有方法都按字母顺序重新排序;大多数变量名都替换为“list2”、“node2”等泛型;代码中添加了许多冗余限定符;所有 cmets 丢失;一些代码支离破碎。但是,如果您必须从文件重新开始,则此选项要好得多。就像下面提到的 Rizwan,如果您希望此解决方案正常工作,请不要重建项目。
        • dotPeek 有效!注意:可以在以下位置找到最后几个构建:C:\Users\#\AppData\Local\Temp\Temporary ASP.NET Files\vs\...(等等)
        • 我遇到了同样的问题,为了解决这个问题,我尝试了 jetbrains 的 dotpeek 和 ilspy ilspy.net 两者都工作正常,但最好的是 ilspy,因为它可以反编译并生成与 dotpeek 相比非常好的代码。
        • 使用 Reflector 恢复损坏文件的流程步骤是什么??
        【解决方案6】:

        对我有用的是备份。 顺便说一句,我试图在 Windows 8 机器上恢复 VS2013 文件。

        尝试在系统中的以下位置签入。

        C:\Users\用户名\我的文档\Visual Studio\Backup Files\ProjectFolder

        我找到了一个带有 original-date.filename.cs 名称的原始文件和一个recovered-date.filename.cs 文件。

        原件是需要的。 删除项目中的那个,添加原始文件并将其重命名为file.cs。尝试构建和调试,它给出了预期的结果。

        【讨论】:

          【解决方案7】:

          还只是想再添加一件事... 就我而言,我有一个带有各自 .cs 和 Designer.cs 的 aspx 页面 .cs 文件已损坏,我确实在项目上进行了构建,使用 Designer.cs 项目成功构建并替换了 dll。当我尝试使用反射器恢复时,一切都处于不归路。 :(

          因此,如果您发现任何文件已损坏,请不要构建项目。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-24
            • 2018-03-31
            • 2022-11-10
            • 2011-05-23
            • 2016-05-21
            相关资源
            最近更新 更多