我剛剛繼承了一個源代碼很久已丟失的Web應用程序(最初編寫於2010年並擱置)。該應用程序有幾個與應用程序本身相關的.dll程序集,例如「applicationCORE.dll」,「applicationBI.dll」,「applicationDATA.dll」和「application.dll」如何反編譯ASP.NET/C#Web應用程序
我見過this question和建議的工具(Just Decompile)很棒,創建了一個.sln和.csproj文件爲我反編譯的第一個程序集。我的問題是,如何將通過反編譯創建的各種項目與編譯的Web應用程序文件(.aspx)合併,我如何解析.aspx文件中的引用,即引用不再存在的代碼隱藏文件,例如「default.aspx」引用「default.aspx.cs」,而反編譯器創建一個「default.cs」文件。重命名.cs文件還是更新引用更安全?
最後,將每個dll作爲解決方案中的單獨項目出現嗎?
我意識到這可能被認爲是一個重複的問題,但似乎並沒有一個在線資源通過這個過程來引導開發人員。
不確定您的意思是「合併各個項目」。至於文件名等框架約定,您可能需要手動更正所有這些。將一個足夠複雜的應用程序反編譯成可用的源代碼是一個艱難的過程,並且是丟失源代碼的代價。我懷疑每個DLL都是自己的項目,我無法想象任何其他方式來構造,即使是原始的源代碼。 – David
對不起,我的術語可能不正確,我指的是合併Web文件與不同的項目。從您的回覆中,聽起來像我應該使用「application.dll」解決方案文件,手動更新引用,然後將其他「.dll」文件生成的項目(反編譯後)添加到解決方案中?我知道它的苦心經歷 - 在你看來,與重寫看似複雜的應用程序相比,它是一條更長的道路嗎? – Daniel
我可能會採用創建應用程序/解決方案/等的空殼的方法。作爲一種「受控環境」,然後手動將反編譯的代碼轉換爲該代碼。至於什麼是更長的路徑,這是由你的組織來決定的。他們想要通往哪條路?一種可能會工作一段時間的膠帶解決方案?具有文檔和可測試性和支持的企業應用程序?中間某個地方?在正在編寫的實際代碼行之外,這個決定很多。 – David