Próbuję stworzyć narzędzie, które będzie wystarczająco inteligentne, aby programowo zbadać pliki binarne wersji Release, wyprodukowane przez identyczny kod C# skompilowany na dwóch oddzielnych machinach w różnych momentach i stwierdzić, że kod był identyczny będąc w stanie wykryć wszelkie zmiany kodu, jeśli są obecne w kodzie C# używanym do tworzenia tych plików binarnych.Powtarzalne kompilacje z tego samego kodu źródłowego C# na różnych maszynach
Próbowałem użyć wielu podejść, ale aby zachować ten krótki, będę trzymać się najnowszej próby. Uruchamiam ildasm z opcją/text w plikach binarnych i zastępuję GUID dla anonimowych pól itp. W tekście, ale gdy pliki binarne pochodzą z różnych sztuk, okazuje się, że tekst utworzony przez ILDASM/tekst został zmieniony. Pliki binarne pochodzące z tego samego kodu, ale skompilowane przez tę samą konfigurację na różnych komputerach, również pojawiają się w dużym stopniu uporządkowane. Jakąkolwiek sugestię, w jaki sposób można kontrolować to ponowne zamawianie IL, byłoby docenione?
Cheers
PS: Wszelkie alternatywne strategie niezawodnie realizacji tego są również mile widziane.
i nie można porównać kodu źródłowego, ponieważ? ... –
Co więcej, jest to prawdopodobnie istotne: http://stackoverflow.com/questions/1335427/why-does-c-sharp-generate-different-exes -do-tego-tego-kodu źródłowego –
Jeśli to możliwe, czy możesz powiedzieć, dlaczego potrzebujesz takiego narzędzia? Być może istnieje znacznie lepsze rozwiązanie problemu, który próbujesz rozwiązać, tworząc go. –