0

场景:我可以访问在远程 Web 服务器上运行的已发布的 ASP.NET 应用程序。目录结构如下所示:

在此处输入图像描述

据我所知,我无权访问项目/解决方案文件。具体来说,我找不到需要修改的特定 C# 代码隐藏文件。

是否可以仅使用已发布的代码以最小的努力重建这个项目?

4

2 回答 2

5

一些澄清:

重构某事物就是在不改变其外部行为的情况下改变其内部结构。您可以使用反编译器访问源代码,但通常不值得投入大量时间,因为反编译器已做出格式化决定,使大多数代码难以为人类阅读(因为它已经被剥离以实现机器可读性) .

重构通常只是为了提高代码的性能或可读性,所以如果你的目标是后者,你就会开始茫然。我的猜测是您需要进入并调整一些功能,在这种情况下,反编译器确实是唯一的方法,但找到源代码并保持对源代码的良好跟踪可能是更好的选择。当我们将代码部署到生产环境时,我们会包含一个 ReadMe.txt 文件,其中指示在何处查找源代码。

此外,一些 asp.net 文件没有编译成 .dll。通常 .dll 仅包含以 .vb 或 .cs 结尾的文件。您仍然需要访问和包含非编译页面,如 .aspx 和 .ascx 文件,但这些也将在您的服务器上。

.NET Reflector 的一个很好的免费替代方案是使用 Telerik 的Just Decompile,它可以选择从编译后的代码重新创建 .proj 文件。

于 2013-02-11T01:38:44.773 回答
0

您可以使用像.NET Reflector这样的反编译器来反编译 dll,但这只有在代码没有被混淆的情况下才有效。即使这样,您也可能无法从原始解决方案重新生成所有文件。

于 2013-02-11T01:11:14.313 回答