Terminamos el año con una buena pregunta. Lo primero de todo aclarar que existen diferentes métodos para comparar el código de ensamblados .Net. Algunos de estos métodos simplemente los señalaré, mientras que el método que mejor resultados me ha dado será el que desarrolle en profundidad.
Para comparar el código desensamblado de un .Net puedes usar:
- JustAssembly de la compañía Telerik. Es un programa sencillo y gratuito, pero no le prestan mucha atención, lleva dos años sin actualizarse. Lo puedes encontrar en: https://github.com/telerik/justassembly
- BitDiffer. Otro programa sencillo y de código abierto, pero suele fallar con ensamblados recientes porque no se actualiza desde 2015. Lo encuentras en: https://github.com/bitdiffer/bitdiffer
- Ndepend. Es un programa comercial que dispone de code diff, pero nunca lo he usado.
Como comparar dos ensamblados .Net o hacer code diff de los ensamblados.
Para esta tarea, recomiendo recurrir a dos programas, dnSpy y Winmerge, ambos gratuitos y de código abierto.
En primer lugar, tenemos que hacer una pequeña modificación en los ajustes de dnSpy. Para esto, vamos al menú Ver > Opciones > Descompilador
y desactivamos la opción Mostrar fichas, RVAs y compensaciones de archivo
.
El segundo paso consiste en cargar el primer ensamblado en dnSpy y lo guardamos desde el menú Archivo > Exportar Proyecto
a una carpeta por ejemplo Proyecto_1
. Repetimos este proceso con el segundo ensamblado, guardando el proyecto en una carpeta diferente, por ejemplo Proyecto_2
.
Llegados a este punto tenemos dos carpetas que podemos comparar con un programa estándar de diff y que en este caso he propuesto el programa WinMerge porque es el que yo uso.