2009-02-26 55 views

Respuesta

16

Reflector tiene una herramienta Diff.

+0

cosas buenas, gracias – flesh

+0

¿Esto todavía funciona con la última versión Reflector? La mía solo se estrelló haciendo un diff. – mkmurray

+0

No pude conseguir que esto funcionara con la última versión (6.5), lo cual es una lástima porque sonaba genial. – theChrisKent

4

¿Por qué no desmontar primero y luego comparar?

+1

Exportado con Reflector, luego comparó los directorios con Beyond Compare. ¡Simplemente genial! :) –

4

Uso .NET Reflector (versión libre es todo lo que necesita) para abrir los archivos DLL y luego haga clic derecho y elegir exportar a separar los directorios.

Luego use ExamDiff Pro para comparar los directorios (puede obtener una versión de prueba gratuita de 30 días). Puede navegar a través de las subcarpetas y abrir cada archivo según sea necesario en una nueva ventana de comparación (simplemente haga doble clic en la ventana de ExamDiff Pro). ¡Funciona increíble!

ExamDiff Pro también tiene un plugin PE32 volcado que va a hacer una comparación directa entre .dll y .exe. Esto es útil para observar los cambios de encabezado y marcar diferencias binarias, pero no lo descompilará por usted (por lo tanto, utilice el método Reflector anterior).

+0

nah no funciona. Puedo ver el código en el reflector bien. pero exportar da 134 error (s). Hecho. – hamish

17

dotPeek de JetBrains también se pueden utilizar. También es gratis.

  • Abra el conjunto en dotPeek
  • Seleccione el conjunto
  • Archivo -> Exportar para proyectar
  • elegir una ubicación en el disco

Repetir lo anterior para el conjunto que desee para comparar, luego abra las dos carpetas en una herramienta diff. Usé WinMerge.

Notarás que la gran mayoría de los archivos tienen diferencias. Esto se debe a que los archivos tienen un comentario en la parte superior como esto

// MVID: {some guid here} 

Puede crear un filtro en WinMerge ignorarlo

  • Herramientas -> Filtro ...
  • Ir a la " filtros de línea" ficha
  • Añadir el siguiente filtro ^// MVID:

Cuando estás bien los cambios, se volverá a explorar el carpetas e ignorar cualquier línea que comience con ese comentario. Ahora debería ver solo los cambios que le interesan.

+2

Este funciona genial y es totalmente gratuito. Sin embargo, es posible que necesite agregar más filtros. Tuve que agregar '^ // Assembly location:' también. Gracias Colin – mariozski

+0

Además, asegúrese de hacer clic en la opción "Activar filtros de línea" en la pestaña LineFilters. Lo extrañé, originalmente, y pasé diez minutos rascándome la cabeza. –

0

El equipo de Microsoft BCL tener una herramienta haga a este, se llama LibCheck y se puede encontrar aquí

http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx

Ésta es una vieja herramienta, y tuve que volver a compilar el código fuente usando una versión posterior de el tiempo de ejecución, pero funciona bien y proporciona informes html sobre los cambios.

Cuestiones relacionadas