2012-09-14 3 views
2

C# 코드가 변경되지 않으면 생성 된 IL은 각 빌드와 동일하게 간주됩니다. 문제는 동일한 코드에서 생성 된 2 개의 EXE 파일에 동일한 해시가 없다는 것입니다.코드 변경으로 바이너리가 변경되었는지 확인하는 방법이 있습니까?

코드 스타일의 변경으로 인해 다른 IL이 생성되는지 확인하고 싶습니다. 어떻게하면 될까요?

+3

는, 코드가 동일한 경우에도 (빌드가 각 다른 것입니다 어셈블리에 포함 된 GUID를 생성 편집). – Oded

+1

** 왜 ** 당신이 다른 스타일을 생성하기 위해 코드 스타일을 변경하고자하는지 설명하면 도움이 될 것입니다. –

+0

@DourHighArch 나는 그렇지 않다. 나는 아무것도 변하지 않는다고 스스로 확신하고 싶다. –

답변

1

당신이 EXE를 분해하고 그 내용을 비교하는 데 사용할 수있는 몇 가지 도구가 있습니다. 이 블로그를 봐 http://immitev.blogspot.com.br/2008/10/ways-to-compare-net-assemblies.html

[]의

다른 바이너리를 만들 때마다 생성됩니다
+0

그런데 Telerik의 JustDecompile (다른 디스어셈블러) 사이트에는 사용자의 요구에 맞는 기능 제안이 있습니다. 나는 이것을 표결에 부쳤다. 개발자들로부터 관심을 얻도록 돕자 : http://justdecompile.uservoice.com/forums/113277-justdecompile-feature-suggestions/suggestions/2664373-enable-a-feature-to-compare-versions- of-an-assembl – Fabio

4

잘못된 가정입니다. 코드를 변경하지 않고 다시 빌드하면 다른 바이너리가 제공됩니다.

은 참조 :

https://stackoverflow.com/a/8927785/426894

컴파일러를 실행할 때마다 다른 결과를 얻을 수 있습니다.

그리고

http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past-performance-is-no-guarantee-of-future-results.aspx

은 두 번 같은 진 출력을 보장 같은 C# 프로그램을 컴파일되어 있습니까?

번호

1

당신은 ILSpy, 오픈 소스 .NET 어셈블리 브라우저와 디 컴파일러와 함께이 작업을 수행 할 수 있습니다.

enter image description here

관련 문제