|
Χρήση του εργαλείου αποσυμπίλησης ILSpy. Ωστόσο, το ILspy απαιτεί την εγκατάσταση του .NET Framework 4.0 στον υπολογιστή σας. Το ILspy μπορεί να μετατρέψει ένα αρχείο dll σε γλώσσα C# ή VB. Το ILspy μπορεί να αποθηκεύσει ένα μόνο αρχείο ως αρχείο .cs ή .vb αρχείο και όταν υπάρχουν πολλά αρχεία, μπορείτε να επιλέξετε να το αποθηκεύσετε ως αρχείο έργου. Οι δηλώσεις C# μπορούν να απομεταγλωττιστούν από το ILspy και μπορούν να υποστηρίξουν την απομεταγλώττιση των δηλώσεων απόδοσης απόδοσης και των εκφράσεων λάμδα. Συνήθιζα να χρησιμοποιώ το Reflector για να δω κάποιες πληροφορίες σχετικά με τη βιβλιοθήκη .NET, αλλά από τον Φεβρουάριο του 2011, το Reflector έχει μετακινηθεί σε λογισμικό επί πληρωμή, έτσι οι προγραμματιστές που αγαπούν το ελεύθερο λογισμικό έχουν στραφεί στην ανάπτυξη του δικού τους απομεταγλωττισμένου λογισμικού. Έτσι το ILspy γεννήθηκε λόγω τύχης. Το ILSPY είναι ένα εργαλείο ανοιχτού κώδικα που αντικαθιστά τους ανακλαστήρες και απομεταγλωττίζει κώδικα παρόμοιο με τους ανακλαστήρες. Το SharpDevelop είναι ένα άλλο και μοναδικό . .NET ανοιχτό εργαλείο και είναι ανοιχτού κώδικα. Προσφέρει επίσης αρκετά καλές δυνατότητες, σχεδόν ξαναγράφοντας το Visual Studio. Στην πιο πρόσφατη έκδοση, η υποστήριξη για τα αρχεία ασφαλείας λύσεων και τα αρχεία έργου του Visual Studio έχει προστεθεί απευθείας. Το ILSpy είναι ένα εργαλείο απομεταγλωττιστή από την ομάδα SharpDevelop και είναι επίσης ανοιχτού κώδικα, και ο αποσφαλματωτής και ο απομεταγλωττιστής του περιγράφονται παρακάτω.
Στιγμιότυπο οθόνης της διεπαφής του ILspy
Η διεπαφή του ILSpy είναι παρόμοια με το Reflector, με στοιχεία ελέγχου δέντρου που δείχνουν τη συναρμολόγηση και τον τύπο της στα αριστερά και τον αντίστοιχο πηγαίο κώδικα στα δεξιά. Η βασική λειτουργία απομεταγλώττισης δεν είναι κακή σε σύγκριση με το Reflector, και μερικές φορές μπορεί ακόμη και να απομεταγλωττιστεί με το ILSpy για συγκροτήματα που δεν μπορούν να απομεταγλωττιστούν (λόγω κρυπτογράφησης) με το Reflector.
Το ILspy απαιτεί την εγκατάσταση του .NET Framework 4.0 στον υπολογιστή σας.Υπάρχουν πολλά χαρακτηριστικά που χρησιμοποιούνται συνήθως στο ILspyΗ βασική λειτουργία απομεταγλώττισης τύπου είναι διαθέσιμη Τώρα υποστηρίζεται μόνο η απομεταγλώττιση του πηγαίου κώδικα σε γλώσσες C# και IL, όχι VB. Οι αποδόσεις είναι:
Η δυνατότητα αποθήκευσης κώδικα του ILSpy Όταν κάνετε κλικ σε έναν τύπο, επιλέγοντας File-> Save Code απομεταγλωττίζεται ο τρέχων τύπος και αποθηκεύεται στο καθορισμένο αρχείο και όταν επιλέγετε μια συγκρότηση, ο Save Code αποθηκεύεται ως αρχείο έργου (csproj) και όλοι οι τύποι του προστίθενται στο έργο.
Η δυνατότητα εντοπισμού σφαλμάτων του ILSpy Το πρόγραμμα εντοπισμού σφαλμάτων εδώ δεν αναφέρεται στο Visual Studioπηγήεπίπεδο του προγράμματος εντοπισμού σφαλμάτων, αλλά αναφέρεται στο πρόγραμμα εντοπισμού σφαλμάτων της διάταξης. Το Reflector διαθέτει ένα πρόσθετο που μπορεί να συνδεθεί απευθείας στο Visual Studio για τον εντοπισμό σφαλμάτων βιβλιοθηκών τύπου τρίτων χωρίς να χρειάζεται να απομεταγλωττίσετε τις βιβλιοθήκες τύπου τρίτων και να τις προσθέσετε στο έργο με τη μορφή πηγαίου κώδικα. Το ILSpy διαθέτει επίσης αυτή τη δυνατότητα, η οποία σας επιτρέπει να διορθώνετε απευθείας συγκροτήματα τρίτων, με δύο επιλογές Εάν η βιβλιοθήκη τύπων άλλου κατασκευαστή είναι εκτελέσιμο, μπορείτε να ξεκινήσετε το πρόγραμμα με Εντοπισμός σφαλμάτων εκτελέσιμου αρχείου. Εάν η βιβλιοθήκη τύπων άλλου κατασκευαστή είναι μια συγκρότηση (DLL), μπορείτε να την επισυνάψετε με μια εφαρμογή Επισύναψη σε εκτέλεση για να ξεκινήσετε τον εντοπισμό σφαλμάτων στη συγκρότηση.
Όπως μπορείτε ήδη να δείτε από την παραπάνω εικόνα, η χρήση του είναι ίδια με τον εντοπισμό σφαλμάτων στον πηγαίο κώδικα. Όπου πρέπει να παρακολουθήσετε την τιμή της μεταβλητής, ορίστε ένα σημείο διακοπής και όταν το πρόγραμμα εκτελείται σε αυτό το σημείο, μπορείτε να παρατηρήσετε την τιμή της μεταβλητής παρακολουθώντας τη φόρμα. Η διαφορά μεταξύ των δύο είναι ότι όταν γίνεται εντοπισμός σφαλμάτων στο Attach to a running application, εάν ο κώδικας βελτιστοποιηθεί από τον μεταγλωττιστή, η οθόνη δεν θα λάβει την τιμή του.
Όπως φαίνεται στην εικόνα, η τιμή του αριθμού μεταβλητής που αποσφαλματώνεται δεν μπορεί να εμφανιστεί επειδή ο κώδικας έχει βελτιστοποιηθεί. Η επίσημη προτεινόμενη μέθοδος είναι ο εντοπισμός σφαλμάτων ενός εκτελέσιμου αρχείου Όπως και με τον εντοπισμό σφαλμάτων πηγαίου κώδικα .NET στο Visual Studio, μπορείτε να εισέλθετε, να περάσετε, να συνεχίσετε και η γραμμή κατάστασης θα εμφανίσει την αναμονή, την εκτέλεση και τον εντοπισμό σφαλμάτων.
Εκτός από τον εντοπισμό σφαλμάτων του κώδικα σε μορφή C#/VB του συγκροτήματος, μπορεί επίσης να διορθωθεί σε κώδικα IL, όπως φαίνεται στο παρακάτω σχήμα
Το πρόγραμμα εντοπισμού σφαλμάτων του ILSpy υπάρχει ως πρόσθετο, φροντίστε να συμπεριλάβετε το πρόσθετο ILSpy.Debugger.
Αλλά αποσφαλμάτωση. Οι συγκροτήσεις .NET πρέπει να απαιτούν αρχεία PDB. Ωστόσο, το ILSpy δεν δημιουργεί αρχεία PDB (δεν δημιουργούνται αρχεία PDB) και δεν μπορεί να εντοπίσει σφάλματα ASP.NET εφαρμογές web και υπηρεσίες web.
|