2014-03-27 2 views
1

VS2012에 C# 콘솔 응용 프로그램을 작성했고 모든 것이 완벽하게 작동하기 때문에 사람들이 사용할 수 있도록 .exe 파일을 우리 서버에 저장했습니다.Visual Studio에서 내 자신의 실행 파일 열기

어쩌면 소스 컨트롤에 추가하기 전에 프로젝트를 약간 편집했는데 지금은 작동하지 않습니다. 작업중인 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

JustDecompile (Telerik에서 제공)을 사용하면 기존 .net 어셈블리에서 프로젝트를 추출 할 수 있으며 무료입니다.

+0

.NetReflector (작동 함)를 시도한 후에 JustDecompile을 다운로드하여 사용해 보았습니다. .exe 파일을 브라우저로 드래그하고 Main 프로그램으로 이동하여 필요한 것을 꺼 냈습니다. 감사합니다 – Dave

1

디 컴파일러는 "작업 코드"를 제공하지만 "현재"작동하는 코드가 아닙니다.

모든 주석과 지역 변수 이름은 사라질 것입니다. 새 임시 변수가 추가됩니다. 그리고 일부 코딩 구조 (즉, 루프가 for, while 또는 do-while인지 여부)은 상이하지만 동일하게 표현 될 수있다.

따라서 디 컴파일러는 메모리를 확인하는 데 도움이됩니다 (이 버전이 내가 해당 버전에 체크인했는지 여부는 포함되어 있지 않습니까?).하지만 소스 제어 준비 코드를 다시받을 수는 없습니다.

+0

아래 두 프로그램을 모두 시험해 보았는데 왜 출력이 내 원본과 정확히 일치하지 않는지 궁금합니다. 그것은 내가 기억할 필요가있는 곳을 알기위한 기억 알리미로 충분했고, 나는 단지 변수를 다시 포맷하고 다음 사람을 위해 몇 가지 코멘트를 다시 추가해야했습니다. – Dave

관련 문제