如何从 Visual Studio 2010 制作的调试文件夹中恢复数据/代码?

con*_*ind 0 data-recovery visual-studio-2010

我有一个严重的问题,我的硬盘昨天崩溃了,我有很多项目。我丢失了大部分,但我恢复的都是我发送给客户端的所有调试文件夹(其中大部分是桌面应用程序)。我无法恢复大部分工作的代码,但我确实有调试文件夹,我的问题是有什么方法可以从中恢复我的代码。我相信有些人你会在过去经历过,如果你有任何关于这方面的信息,请帮助。

调试文件夹中的文件:示例我制作应用程序苹果

apple.exe                     type=application
apple.pdb                     type=PDBFIle
apple.vshost                  type=Application
apple.vshost.exe.mainfest     type=MANIFEST File
Run Code Online (Sandbox Code Playgroud)

附加信息:

我的笔记本电脑硬盘坏了,所以我目前将它用作另一台笔记本电脑的 USB 驱动器。我有 3 个分区,但现在我看到 4 个 i,j,k,l 。其中一个曾经是我的 D: 驱动器工作正常,我看到它显示 150 GB 中有 72 GB 可用。其余的他们只是没有信息,当我在几分钟内没有点击它们时,它会说格式化驱动器等......如果你知道如何解决那会很棒。

谢谢

Cod*_*ray 5

您真的很幸运能够访问包含已编译二进制文件的 Debug 文件夹。您使用托管语言 (C#) 工作这一事实意味着您可以使用众多 .NET 反编译器之一以可读格式显示它们包含的源代码。它可能与您最初在 Visual Studio 中输入的内容不完全相同,但会非常接近——比在系统崩溃时通常预期的要好得多。

我曾经推荐 Redgate 的.NET Reflector来完成这项任务,但他们最近决定取消其反编译器实用程序的免费版本,并采用了一些我个人不同意的商业惯例。再说一次,他们的工具可能仍然是最好的,因此您可以考虑下载他们的 30 天试用版以尝试恢复您的代码。谁知道呢,你可能会喜欢到买!

如果您像我一样是小气鬼,或者是真正免费软件的忠实拥护者,您可以尝试在 Reflector 变得不免费之后出现的免费替代品之一,例如ILSpy,由开发 SharpDevelop 的同一个人开发。此处列出更多替代方案。

无论您选择哪种反编译器实用程序,下载副本并打开其可执行文件。然后从“文件”菜单中选择“打开”,然后导航到.exe要从中恢复源的第一个编译。该实用程序将显示您的应用程序的名称和有关您的程序集的一些元数据。从这里,您可以确保打开了正确的文件。

在 ILSpy 和 .NET Reflector 中,您都可以单击应用程序名称旁边的 [+] 开关来展开其列表。您将看到更多可扩展的项目,例如引用(应用程序使用的 DLL)、资源(编译到应用程序中的资源文件)以及代码中定义的命名空间。展开单个命名空间将显示该命名空间中定义的所有类型,展开一个类型将显示该类型中定义的所有类型、方法、成员等,依此类推。单击左侧源代码树中的单个项目将在右侧的输出窗格中显示反编译代码;ILSpy 和 .NET Reflector 都支持将代码显示为 C#,这对您来说应该非常易读。

例如,使用 ILSpy 打开ILSpy.exe应用程序本身会产生以下输出:

 

你真的不能在这里破坏任何东西,所以四处浏览,探索和看看所有可以恢复的东西,惊讶于它的效果如何。DLL 和 EXE 的一切都很好。

然后开始复制和粘贴...

下一个任务是让您的系统再次稳定。如果您遇到硬盘崩溃,您绝对不想再次信任该驱动器!用完立即购买一个新的,擦拭它,然后重新加载 Windows。

完成此操作后,您肯定希望开始设置源/版本/修订控制系统,以便将来用于存储您的代码。所有聪明的开发人员都会出于多种原因使用它。使用 Google 搜索查找更多信息。有很多不同的选择。你选择哪一个并不重要;重要的是你选一个!