我丢失了一个重要的.NET 4.0 C#项目,我剩下的就是exe文件。
为了恢复项目,我尝试了这个:http://mrdublin.net/2008/07/31/retrieve-c-code-out-of-exe-assembly/
当前的.NET Reflector看起来并不一样,但我尽可能地遵循指南,我确实得到了一个项目。在Visual Studio 2010中打开它时,我首先必须将项目转换为当前版本和构建。
问题是:
答案 0 :(得分:1)
我不再熟悉Reflector,但我想它只是默认为.net 2.0,可能有一个选项可以在某处更改。作为替代方案,您可以查看JetBrains dotPeek。
关于问题2:不,代码可能看起来像原始源一样(除非你有PDB文件)。您将丢失所有注释,变量名称等。所有反编译的源都将非常通用,因为编译的代码不包含此类详细信息。
答案 1 :(得分:0)
我最近不得不从程序集中恢复代码。我用了dotPeek from JetBrains。它完成了这项工作。你可能会尝试而不是反射器。
至于你的问题:你所遵循的指示来自2008年(!)。目前的版本是3.0 / 3.5,与2.0兼容。 .NET 4.0于2010年发布。也许Reflector不会将版本设置为无法验证的版本。
第二个更直接:我不确定你的“替代解决方案”是什么意思,但是你会将exe的IL翻译成c#。这意味着恢复的代码将与原始代码不同。另一方面,你没有原版,那么你将如何验证?我们的变量名称会有所不同,你会丢失注释,测试以及exe外部的所有其他内容。看看你是否还有可执行文件的PDB文件,这将有助于变量名称和实际的,编写的C#代码。
答案 2 :(得分:0)
我使用了常规的reflector.net,即使它没有重新生成exect代码,也没有更好。