Pregunta

¿Hay algún buen programa para comparar compilaciones de .NET?

Por ejemplo, tengo HelloWorld.dll (1.0.0.0) y HelloWorld.dll (2.0.0.0), y quiero comparar las diferencias, ¿cómo puedo hacer esto?

Sé que puedo usar .NET Reflector y usar el complemento Assembly Diff. ¿Hay alguna otra buena herramienta para hacer esto?

¿Fue útil?

Otros consejos

Dos formas.

Podrías ILDASM y diff con herramientas clásicas.

O podría usar NDepends, que costará esa característica.

[Pieza para hinchadores de C # ..]

Solo tenía que comparar dos revisiones de la misma DLL, que tenía la misma versión (necesitaba implementar una pequeña revisión e implementar la DLL en producción, pero quería asegurarme de que no se filtraran otros cambios en el código) . Idealmente, me gustaría que el complemento Assemby Diff me muestre la diferencia, pero no funciona (cree que estoy comparando una DLL consigo misma). Entonces esto es lo que hice:

  • Creó dos carpetas para contener archivos fuente desmontados.
  • Usó la opción Reflector Exportar (desde el menú contextual) para generar archivos fuente de cada DLL en las carpetas creadas en el paso anterior.
  • Utilizó la herramienta gratuita DiffMerge para comparar dos directorios; las herramientas me mostraron los archivos modificados y la diferencia.

Es un poco torpe, pero parece funcionar. Sin embargo, deseo que el complemento Diff de la Asamblea funcione.

ACTUALIZACIÓN: se supone que la última versión del complemento Diff de ensamblaje soluciona el problema de comparar dos versiones del mismo ensamblado. Pruébalo.

La herramienta NDepend ofrece muchas funciones para manejar la diferencia de código .NET. Descargo de responsabilidad: soy uno de los desarrolladores de la herramienta .

El panel Búsqueda por cambio está dedicado a examinar el código de ensamblado diff. Tenga en cuenta que:

  • Puede conectarse a NDepend cualquier herramienta de diferencia de código utilizada por el menú Comparar versiones anteriores y nuevas del archivo fuente
  • Si no tiene el código fuente, solo los ensambles sin procesar, existe la opción Comparar versiones anteriores y más nuevas desmontadas con Reflector

NDepend Búsqueda por panel de diferencias

Observe también en la captura de pantalla que se genera una consulta de código CQLinq para explorar el diff .

from m in Application.Methods 
where m.CodeWasChanged() 
select new { m, m.NbLinesOfCode }

Muchas otras consultas y reglas de diferencias predeterminadas se proponen de forma predeterminada, lo que le permitirá explorar el código .NET diff de manera inteligente.

Una opción más es LibCheck de Microsoft.

Herramienta de consola bastante antigua para obtener la diferencia de API pública. No podría ejecutar sin depurar y reorientar a una versión .net más reciente. Sin embargo, me dio una salida muy clara y la voy a usar más tarde.

Aquí hay un artículo con capturas de pantalla .

Java tiene uno agradable: Utilidades de diferencias semánticas

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top