C# 对dll进行反编译和反向工程,以生成ASP.NET MVC web项目

C# 对dll进行反编译和反向工程,以生成ASP.NET MVC web项目,c#,asp.net-mvc,C#,Asp.net Mvc,如果我把大部分术语弄错了,请原谅,但我会尽我所能解释这个场景,以及我迄今为止所研究和做的事情 我们有一个开发人员开发了一个软件,这是一个ASP.NET MVC web应用程序,项目中包含API,但他已经离开了公司,我们找不到源代码,我需要管理和维护该软件。我读过中间语言和反编译程序(ILSpy) 我能够反编译dll并获得所有代码,然而,我读的所有文章都只是在反编译dll以生成源代码时停止了,但似乎没有一篇文章能够成功地解释如何生成其他文件和文件夹(例如视图>主页>索引e.t.c)。或者,唯一的解

如果我把大部分术语弄错了,请原谅,但我会尽我所能解释这个场景,以及我迄今为止所研究和做的事情

我们有一个开发人员开发了一个软件,这是一个ASP.NET MVC web应用程序,项目中包含API,但他已经离开了公司,我们找不到源代码,我需要管理和维护该软件。我读过中间语言和反编译程序(ILSpy)


我能够反编译dll并获得所有代码,然而,我读的所有文章都只是在反编译dll以生成源代码时停止了,但似乎没有一篇文章能够成功地解释如何生成其他文件和文件夹(例如视图>主页>索引e.t.c)。或者,唯一的解决方案是手动过程,我必须手动创建所有视图文件夹中的所有cshtml文件。有没有更好的方法来实现这一点?谢谢您

在您的情况下,可以将'.NET Reflector''Reflector.FileDiscombler'一起使用,这将允许您通过程序集恢复代码。您可以找到下面的链接

首先下载“.Net Reflector”,然后您可以添加“文件反汇编程序”作为外接程序,最后右键单击您的汇编并选择导出源代码

.Net反射器:

文件反汇编程序:

无论从哪个角度看,这都是一件痛苦的事情——编译起来很痛苦,长期维护起来也很痛苦。对于遗留系统,我通常不主张“重新开始”,但在这种情况下,我认为您最好尝试重新实现,并将旧系统作为一个非常彻底的规范,开始使用版本控制系统和一些备份策略!这里没有经验,所以只是试着逻辑思考。您将无法获得文件夹结构或支持文件(例如..csproj),需要进行大量猜测。从项目中的DLL中,您可以猜测使用了哪些NuGet软件包。名称空间可以为目录结构提供一些提示。您很可能不会得到Razor语法,.cshtml和codebehind将合并到同一个类中。客户端脚本并没有被编译,但重新设计构建和部署脚本也不容易。如果你的浏览页面不是很好的话,那么请求代码不是更容易吗?除非你的活动网站已经在正确的目录结构中有了.cshtml文件。软件开发人员的主要任务是编写源代码。如果您在确保安全维护源代码方面不够谨慎,那么就不应该编写源代码。我意识到这可能不在你的控制之下……但我真的很怀疑为一家不重视数据维护的公司工作的价值。