7
votes

Comparez deux dll

Scénario

J'ai une application C # compilée sous forme de DLL. J'ai une construction de la semaine dernière et une construction de cette semaine. Il y a eu un changement important dans la performance, je souhaite donc comparer les deux bâtiments pour voir ce qui a changé.

Des idées? ........ Suggestions?

acclamations

EDIT:

Oui, il serait préférable de comparer le code source à partir du contrôle de la version ... Sauf que nous utilisons TFS, non par choix, et même avec l'application Bolton TFS prend le contrôle de la source à un tout nouveau niveau de Shite ........ Il est très difficile de revenir sans gâcher avec des espaces de travail, etc. Je pensais que l'approche DLL serait plus facile ... L'application est un monstre aussi ...... < / p>


4 commentaires

Ne serait-il pas préférable de comparer le code source assis dans votre référentiel de contrôle de version?


TFS vous permet de comparer différentes versions du même fichier, même sur différentes branches sans problème. Apprenez à utiliser votre outil au lieu de me plaindre.


Je pense que TFS est assez puissant. Et avant le déploiement, vous pouvez enregistrer les nouvelles modifications [Niveau de fichier / de configuration], probablement avec des éléments de travail [en supposant que chaque modification vérifiée a une demande de changement / élément de travail associé], de sorte que cela donnera à la puissance de rechercher quel fichier changé a été modifié. déployé pour quelle raison. Et j'ajouterais TFS Tag, si j'avais la chance ...


Un parfait exemple de bonne question faite pour avoir l'air mauvais mais quelqu'un qui a suggéré qu'il doit être plus concentré. Je suppose que le suggesteur doit être plus concentré. Il est clair que la question et l'intention de OP sont claires ..


5 Réponses :


10
votes

Je recommanderais de désassembler deux bibliothèques avec le réflecteur (clic droit sur la Assemblage -> Exporter), puis comparez les annuaires générés avec un outil de fusion, comme Winmerge .


1 commentaires

Jetbrains Dotceek et probablement d'autres outils de démontage peuvent faire le code d'exportation aussi



2
votes

Ne serait-il pas préférable de profiler les deux DLL? Vous trouverez où dans la seconde que vous passez plus de temps que dans la première. Cela devrait vous donner une indication de ce qui a mal tourné.


2 commentaires

Il se peut que les changements qui rendent l'application plus lente soient nécessaires; En profilant, vous serez en mesure de conserver la fonctionnalité dans ces changements tout en optimisant le code afin de supprimer la cause des mauvaises performances. Le profileur est intégré à Visual Studio - en 2008, il vit sur le menu Analyze.


Oui c'est exactement mon point. S'il n'y a pas de régressions dans la suite de tests, les modifications ont été introduites pour une raison quelconque, le profilage semble donc la voie à suivre.



0
votes

Une réponse mise à jour à cette question, s'il s'agit d'une DLL écrite en C #, je recommanderais DotPeek de Jetbrains. C'est gratuit! Après décompilation, vous pouvez copier le texte du code dans un éditeur de texte tel que NOTEPAD ++ qui vous permet de comparer deux fichiers texte.


0 commentaires

5
votes

Aujourd'hui, la même chose peut être faite avec Jetbrains Dotceek. Chargez le bouton DLL droit de la souris -> Exporter vers le projet et comparez-le à Winmerge


0 commentaires

8
votes

Ceci est une option libre pour comparer .NET C # Assembly: Outil de diff de l'assemblage pour .NET - Justassembly


0 commentaires