长话短说,VSS决定我不允许进行一些代码更改。我错过了一个相当大的功能,我不想重写(在去年夏天给了合作社作为工作)。它运作良好,并做客户想要的。但是......我没有机器和它开发的机器已经铺平了!
Do'h!
我们直接从visual studio将网站发布到测试环境中,然后我们将文件复制到生产环境中。所以我有VS发布的“编译”文件。
如何将其重新编入代码?我相信我可以弄清楚它在哪个DLL中我会认为像反射器这样的东西将是我最好的选择?是否保留了原始变量名称?
答案 0 :(得分:8)
我会使用.NET反射器。如果你有PDB文件和DLL,你的原始变量名将被保留(假设你没有运行任何类型的混淆器)。
答案 1 :(得分:4)
我建议您尝试反映已编译的代码,看看它的可读性。
答案 2 :(得分:1)
反射器一路走来。您不能依赖本地变量名称,因为它们实际上并不存在(只有字段保留其名称),但具有匹配的pdb将有很长的路要走。如果您使用pro/EAP版本的反射器,它将为您完成必要的工作(生成完整的C#反汇编等,因此您不必逐个方法或使用插件)。
当然,您可能仍需要单独查看每个目录。
答案 3 :(得分:1)
最好的方法是使用像http://www.red-gate.com/products/reflector/这样的反编译器。你将丢失变量名称和注释,但你得到的将编译。
很糟糕,但从头开始可能好多了。
答案 4 :(得分:1)
我使用Telerik的JustDecompile从预编译的站点获取源代码。它是免费的,并且完成了我所需要的一切。
答案 5 :(得分:0)
Salamander - 一个.NET反编译器 http://www.remotesoft.com/salamander/index.html
我从来没有使用过这个工具,但是他们在.NET摇滚上谈过它!一会儿回来。 http://www.dotnetrocks.com/default.aspx?showNum=194
答案 6 :(得分:0)
我有类似的问题并使用Reflector来反编译它。我得到了源代码,然后改变了我想要的位,并重建它。然后我再次将该dll复制到Production site。它开始反映我的变化。它非常简单并且一点都不困难,也许是因为预编译的站点每个页面都有dll,并且可以更新,所以在dll中只有代码隐藏文件。