|
Bruk av ILSpy dekompileringsverktøyet. ILspy krever imidlertid at .NET Framework 4.0 installeres på datamaskinen din. ILspy kan konvertere en dll-fil til C# eller VB-språk. ILspy kan lagre en enkelt fil som en .cs fil eller .vb fil, og når det er mange filer, kan du velge å lagre den som en prosjektfil. C#-setninger kan dekompileres av ILspy, og kan støtte dekompilering av yield return-setninger og lambdas-uttrykk. Jeg pleide å bruke Reflector for å se noe informasjon om .NET-biblioteket, men siden februar 2011 har Reflector gått over til betalt programvare, så utviklere som elsker fri programvare har begynt å lage sin egen dekompilerte programvare. Så ILspy ble født på grunn av flaks. ILSPY er et åpen kildekode-verktøy som erstatter reflektorer, og det dekompilerer kode som ligner på reflektorer. SharpDevelop er en annen og eneste . .NET åpent verktøy, og det er åpen kildekode. Det tilbyr også ganske gode funksjoner, nesten som en omskriving av Visual Studio. I den nyeste versjonen er støtte for Visual Studios løsningssikkerhetsfiler og prosjektfiler lagt til direkte. ILSpy er et dekompilatorverktøy fra SharpDevelop-gruppen og er også åpen kildekode, og dets debugger og dekompilator er beskrevet nedenfor.
Skjermbilde av ILspys grensesnitt
ILSpys grensesnitt ligner på Reflector, med trekontroller som viser sammensetningen og typen til venstre, og tilsvarende kildekode til høyre. Den grunnleggende dekompileringsfunksjonen er ikke dårlig sammenlignet med Reflector, og noen ganger kan den til og med dekompileres med ILSpy for assemblies som ikke kan dekompileres (på grunn av kryptering) med Reflector.
ILspy krever at .NET Framework 4.0 installeres på datamaskinen din.Det finnes flere vanlige funksjoner i ILspyDen grunnleggende funksjon for typedekompilering er tilgjengelig Nå støttes kun dekompilering av kildekode til C# og IL-språk, ikke VB. Gjengivelsene er:
ILSpys kodelagringsfunksjon Når man klikker på en type, velger man File-> Save Code, dekompilerer den nåværende typen og lagrer den til den angitte filen, og når man velger en assembly, lagres Save Code som en prosjektfil (csproj) og alle typene legges til prosjektet.
ILSpys debugger-funksjon Debuggeren her refererer ikke til Visual Studiokildenivået på debugger, men refererer til debuggeren til assembly. Reflector har et tillegg som kan kobles direkte til Visual Studio for å feilsøke tredjepartsbiblioteker uten å måtte dekompilere tredjepartsbibliotekene og legge dem til prosjektet i form av kildekode. ILSpy har også denne funksjonen, som lar deg feilsøke tredjepartsmonteringer direkte, med to alternativer Hvis tredjepartsbiblioteket er en kjørbar fil, kan du starte programmet med Debug en kjørbar fil. Hvis tredjepartsbiblioteket er en assembly (DLL), kan du legge det ved med en Attach til kjørende applikasjon for å begynne feilsøking av assemblyen.
Som du allerede kan se på bildet over, er bruken den samme som ved feilsøking av kildekode. Der du må overvåke variabelverdien, sette et breakpoint, og når programmet kjører til dette punktet, kan du observere variabelens verdi ved å overvåke formen. Forskjellen mellom de to er at når Attach til en kjørende applikasjon blir feilsøkt, vil ikke skjermen få verdien hvis koden optimaliseres av kompilatoren.
Som vist på bildet, kan ikke verdien til variabelen num som feilsøkes vises fordi koden er optimalisert. Den offisielle anbefalte metoden er Debug, en kjørbar fil Som med feilsøking av .NET-kildekode i Visual Studio, kan du gå inn i, gå over, fortsette, og statuslinjen vil vise standby, kjøring og feilsøking.
I tillegg til å feilsøke koden i C#/VB-form av assemblyen, kan den også feilsøkes i IL-kode, som vist i figuren nedenfor
ILSpys debugger eksisterer som en plugin, sørg for å inkludere ILSpy.Debugger-pluginen.
Men feilsøking. .NET-assemblies må kreve PDB-filer. ILSpy genererer imidlertid ikke PDB-filer (ingen PDB-filer genereres), og det kan ikke feilsøke ASP.NET webapplikasjoner og webtjenester.
|