Question

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 souhaite 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?

Était-ce utile?

La solution

Autres conseils

Deux façons.

Vous pouvez utiliser ILDASM et diff avec des outils classiques.

Vous pouvez également utiliser NDepends, qui coûtera pour cette fonctionnalité.

[Piece to C # ballonnements ..]

Il me suffisait de comparer deux révisions de la même DLL, qui avaient la même version (j'avais besoin d'implémenter un correctif logiciel et de déployer la DLL en production, mais je voulais m'assurer qu'aucune autre modification ne se retrouvait dans le code) . Idéalement, je souhaiterais que le complément Assemby Diff me montre la différence, mais cela ne fonctionne pas (il pense que je compare une DLL à elle-même). C'est donc ce que j'ai fait:

  • Création de deux dossiers pour contenir les fichiers source désassemblés.
  • L'option Export de Reflector (dans le menu contextuel) a été utilisée pour générer des fichiers source à partir de chaque DLL des dossiers créés à l'étape précédente.
  • Utilisez l'outil gratuit DiffMerge pour comparer deux annuaires; les outils m'ont montré les fichiers modifiés et la différence.

C'est un peu compliqué, mais semble fonctionner. Je souhaite cependant que le complément Assembly Diff fonctionne.

UPDATE: la dernière version du complément Assembly Diff est censée résoudre le problème de la comparaison de deux versions du même assemblage. Essayez-le.

L'outil NDepend offre de nombreuses fonctionnalités pour gérer les différences de code .NET. Clause de non-responsabilité: je suis l'un des développeurs de l'outil .

Le panneau Recherche par changement est dédié à la navigation dans les assemblys code diff. Notez que:

  • Vous pouvez connecter à NDepend tout outil de diff de code utilisé par le menu Comparer les versions plus anciennes et plus récentes du fichier source
  • Si vous ne disposez pas du code source, mais uniquement des assemblages bruts, l'option Compare les versions les plus anciennes et les plus récentes désassemblées avec Reflector

NDepend recherche par panneau de diff>

Notez également sur la capture d'écran qu'une requête de code CQLinq est générée pour parcourir le diff. .

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

De nombreuses autres requêtes et règles diff par défaut sont proposées par défaut, ce qui vous permettra de parcourir le code .NET diff de manière intelligente.

Une autre option est LibCheck de Microsoft.

Un très vieil outil de console pour obtenir uniquement les différences des API publiques. Je ne pouvais pas exécuter sans débogage et reciblage vers une version .net plus récente. Cependant, cela m'a donné une sortie très claire et je vais l'utiliser plus tard.

Voici un article avec des captures d'écran .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top