2014-03-27 31 views
1

我在VS2012中編寫了一個c#控制檯應用程序,並且所有工作都很完美,因此我將.exe文件放在我們的服務器上供人們使用。在VisualStudio中打開我自己的可執行文件

在將它添加到源代碼控制之前,我做了一些編輯,現在它不工作。有沒有辦法從工作的exe文件中提取我的工作代碼,或者我是否試圖從內存中重建?

+2

使用反編譯器。 [.NET Reflector](http://www.red-gate.com/products/dotnet-development/reflector/),[dotPeek](http://www.jetbrains.com/decompiler/)和[ILSpy] (http://ilspy.net/)是很好的選擇。 –

+0

[dotPeek](http://www.jetbrains.com/decompiler/)適用於我。 –

回答

1

是的,你可以從你的可執行文件中反編譯你的.Net代碼。

.Net Reflector做得很好,甚至可以重新生成整個解決方案。

+1

我首先嚐試了這一點,它的工作,(見關於新變量/評論的答案)這是足夠的代碼讓我知道我以前在哪裏,我只是重置變量,我想要什麼,我回來了並跑步。很容易使用,只需下載並做一個文件/打開,然後使用該瀏覽器導航到我的主程序。 – Dave

1

來自Telerik的JustDecompile將允許您從現有的.net程序集中提取項目並且它是免費的。

+0

嘗試.NetReflector(工作)後,我下載了JustDecompile只是爲了嘗試它,它也可以。只需將.exe文件拖入瀏覽器並導航到主程序,並將我所需的內容拉出來。謝謝 – Dave

1

反編譯器會給你「工作代碼」,但它不會是「你的」工作代碼。

所有的註釋和局部變量名稱都將消失。新的臨時變量將被添加。並且一些編碼構建體(即,循環是否爲for,whiledo-while)可以不同但等同表示。

因此,反編譯器對於幫助您確認您的內存很有用(是否包含在該版本中的這個更改是否包含在該版本中?),但不用於獲取源代碼控制就緒代碼。

+0

我嘗試了下面兩個程序,並想知道爲什麼他們的輸出與我的原始輸出不完全相同。記憶提醒足以知道我需要去哪裏,我只需要重新格式化我的變量,併爲下一個人重新添加一些評論。 – Dave

相關問題