0

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

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

apple.exe                     type=application
apple.pdb                     type=PDBFIle
apple.vshost                  type=Application
apple.vshost.exe.mainfest     type=MANIFEST File

附加信息:

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

谢谢

4

1 回答 1

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 搜索查找更多信息。有很多不同的选择。你选哪一个并不重要;重要的是你选一个!

于 2012-01-16T04:45:43.283 回答