繁体   English   中英

从exe文件获取解决方案

[英]Getting solution from exe file

我丢失了一个重要的.NET 4.0 C#项目,剩下的就是exe文件。

为了找回项目,我尝试了以下方法: http : //mrdublin.net/2008/07/31/retrieve-c-code-out-of-exe-assembly/

当前的.NET Reflector看起来并不相同,但我已尽可能遵循该指南,但确实获得了一个项目。 在Visual Studio 2010中打开它时,我首先必须将项目转换为当前版本和内部版本。

问题是:

  1. 我必须将.NET从2.0更改为4.0(从一开始就如此),为什么反射器将其设置为2.0?
  2. 此代码是否与原始代码完全一样,没有替代解决方案或类似的解决方案?

我对Reflector不太熟悉,但我想它只是默认为.net 2.0,可能有一个选项可以在某个地方进行更改。 或者,您可以签出JetBrains dotPeek

关于问题2:否,代码看起来可能与原始源代码完全不同(除非您具有PDB文件)。 您将丢失所有注释,变量名等。所有反编译的源代码将非常通用,因为编译后的代码不包含此类详细信息。

我最近不得不从程序集中恢复代码。 我使用了JetBrains的dotPeek 它完成了工作。 您可以尝试使用它而不是Reflector。

关于您的问题:您遵循的说明来自2008(!)。 当前版本为3.0 / 3.5,与2.0兼容。 .NET 4.0于2010年发布。也许Reflector不会将版本设置为无法验证的版本。

第二个更简单:我不确定您所说的“替代解决方案”是什么意思,但是您会把exe的IL转换回c#。 这意味着恢复的代码将不同于原始代码。 另一方面,您没有原始版本,那么如何验证呢?Y我们的变量名将有所不同,并且您将丢失注释,测试以及该exe外部的所有其他内容。 查看是否还有可执行文件的PDB文件,该文件将有助于变量名和实际的书面C#代码。

我使用了常规的reflector.net,即使它没有重新生成exect代码,也总比没有好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM