我刚刚继承了一个源早已丢失的Web应用程序(最初于2010年编写并搁置)。该应用程序有一些与应用程序本身相关的 .dll 程序集,例如“applicationCORE.dll”、“applicationBI.dll”、“applicationDATA.dll”和“application.dll”
我见过this question并且建议的工具(Just Decompile)非常棒,它为我反编译的第一个程序集创建了一个 .sln 和 .csproj 文件。我的问题是如何将通过反编译创建的各种项目与已编译的 Web 应用程序文件 (.aspx) 合并,如何解析 .aspx 文件中的引用,即引用不再存在的代码隐藏文件,例如“default.aspx”引用“default.aspx.cs”,而反编译器创建“default.cs”文件。重命名 .cs 文件更安全还是应该更新引用?
最后,每个 dll 会在解决方案中显示为一个单独的项目吗?
我意识到这可能会被视为一个重复的问题,但是似乎没有在线资源可以引导开发人员完成整个过程。
最佳答案
按照 David 的建议,我设法让应用程序从反编译的程序集中运行。这是我为使其工作而遵循的过程
.aspx
从网站到项目的页面通过visual studio codebehind
引用。applicationCore.dll
然后将其添加到溶液中 bin
web项目文件夹附加步骤
还有一些语法错误,我认为是由于反编译过程造成的。需要添加一些外部引用,并且由于项目的年龄而略有变化,例如
asp:AjaxScriptControl
改为 asp:ScriptControl
(使用 Nuget 添加包之后)。我还必须为此应用程序安装 Crystal Reports,并且必须购买 Telerik 许可证,因为有正在使用的 UI 组件(尽管我会在使用该应用程序时查看是否可以使用开放/ native 替代方案)。我已经使用凭据登录(我确实必须设置正确的起始页面)并尝试了一些基本的 CRUD 操作。有一些愚蠢的问题需要解决,例如身份验证无法正常工作,如果您访问 protected 页面,则没有重定向,但与我最初遇到的问题相比,这些事情相对较小。
我必须说的是,每个错误都是使用本网站的问题和答案解决的!这一切都在不到 6 小时的时间内完成。
关于c# - 如何反编译 ASP.NET/C# Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45738148/