3

长话短说,VSS 决定不允许我进行一些代码更改。我错过了一个我不想重写的大小合适的功能(去年夏天作为工作交给了合作社)。它工作得很好,可以满足客户的需求。但是……我没有这台机器,而且它所开发的机器已经铺得很低了!

干!

我们直接从 Visual Studio 将站点发布到测试环境中,然后将文件复制到生产环境中。所以我有来自 VS 发布的“编译”文件。

我怎样才能把它重新变成代码?我确信我可以弄清楚它在哪个 DLL 中,并且我认为反射器之类的东西将是我最好的选择?是否保留了原始变量名?

4

7 回答 7

8

我会使用 .NET 反射器。如果您拥有 PDB 文件和 DLL,您的原始变量名将被保留(前提是您没有运行任何类型的混淆器)。

于 2009-11-23T20:38:46.440 回答
4

我建议尝试反映您编译的代码,看看它的可读性如何。

http://www.red-gate.com/products/reflector/

于 2009-11-23T20:39:35.860 回答
1

一路反光。您不能依赖局部变量名称,因为它们实际上并不存在(只有字段保留它们的名称),但是拥有匹配的 pdb 将大有帮助。如果您使用反射器的pro/EAP版本,它将为您完成必须的工作(生成完整的 C# 反汇编等,因此您不必逐个方法或使用插件)。

当然,您可能仍需要分别查看每个目录。

于 2009-11-23T20:40:04.723 回答
1

最好的方法是使用像http://www.red-gate.com/products/reflector/这样的反编译器。您将丢失变量名和注释,但您得到的将被编译。

糟透了,但可能比从头开始要好得多。

于 2009-11-23T20:40:49.713 回答
1

我使用 Telerik 的 JustDecompile 从预编译站点获取源代码。它是免费的,并且已经完成了我需要的一切。

http://www.telerik.com/products/decompiler.aspx

于 2014-04-23T15:38:07.627 回答
0

Salamander - 一个 .NET 反编译器 http://www.remotesoft.com/salamander/index.html

我从未使用过这个工具,但他们在 .NET Rocks 上谈论过它!一会儿回来。http://www.dotnetrocks.com/default.aspx?showNum=194

于 2009-11-23T20:45:08.160 回答
0

我有类似的问题并使用反射器对其进行反编译。我得到了源代码,然后更改了我想要的位,然后重新构建它。然后我再次将该 dll 复制到生产站点。它开始反映我的变化。这很简单,一点也不难,可能是因为预编译站点的每个页面都有 dll,并且是可更新的,所以 dll 中只有代码隐藏文件。

供参考:http ://www.reflector.net/

于 2011-12-22T03:26:04.553 回答