55 votes

Comparez les assemblys .NET compilés?

Existe-t-il de bons programmes à comparer pour compiler des assemblys .NET?

Par exemple, j'ai HelloWorld.dll (1.0.0.0) et HelloWorld.dll (2.0.0.0), et je veux comparer les différences. Comment puis-je faire cela?

Je sais que je peux utiliser .NET Reflector et utiliser le plugin Assembly Diff. Existe-t-il d'autres bons outils pour le faire?

55voto

Daniel LeCheminant Points 28101

Des moyens pour Comparer .NET Assemblées suggère

Commercial:

Gratuit:

27voto

rama-jka toti Points 1174

Deux manières.

Vous pouvez utiliser ILDASM et diff avec des outils classiques.

Ou vous pouvez utiliser NDepends, qui coûtera pour cette fonctionnalité.

[Morceau à C # ballonnements ..]

12voto

Alek Davis Points 3320

J'ai juste eu à comparer deux révisions de la même DLL, qui avait la même version (j'avais besoin pour mettre en œuvre un petit correctif, et de déployer de la DLL dans la production, mais je voulais être sûr qu'aucun autre changement de fuite dans le code). Idéalement, je voudrais que l'Assemblée Diff ajouter-pour me montrer la différence, mais il ne fonctionne pas (il pense que je suis la comparaison d'une DLL à lui-même). C'est donc ce que j'ai fait:

  • Créé deux dossiers à tenir démonté les fichiers source.
  • Utilisé le Réflecteurs' Exportation option (à partir du menu contextuel) pour générer des fichiers sources à partir de chaque DLL dans le dossier créé à l'étape précédente.
  • Utilisé le logiciel gratuit DiffMerge outil pour comparer deux répertoires; les outils m'a montré que les fichiers modifiés et la différence.

C'est un peu encombrants, mais semble fonctionner. Je souhaite que l'Assemblée Diff complément travaillé, bien.

Mise à JOUR: la version La plus récente de l'Assemblée Diff complément est censé résoudre le problème de la comparaison de deux versions de la même assemblée. Lui donner un essai.

7voto

L'outil de NDepend offre de nombreuses fonctionnalités pour gérer .NET code diff. Disclaimer: je suis un des développeurs de l'outil.

Le panneau de Recherche, le Changement est dédié à parcourir assemblées code diff. Notez que:

  • Vous pouvez le brancher à NDepend le code diff outil utilisé par le menu de Comparer les anciennes et les nouvelles version de fichier source
  • Si vous n'avez pas le code source, seules les premières assemblées, il y a la possibilité de Comparer les anciennes et les nouvelles version démonté avec Réflecteur

NDepend Search by Diff Panel

Notez également dans la capture d'écran qu'un CQLinq code de requête est générée à parcourir la diff.

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

Beaucoup d'autres de comparaison par défaut des requêtes et des règles sont proposées par défaut, qui vous permettra de parcourir .NET code diff de façon intelligente.

-11voto

Jonathan Parker Points 4206

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X