Sono nuovo alla programmazione .NET C#. Sto seguendo alcuni libri. Si dice che invece di compilarlo direttamente al codice binario (codice nativo). Il codice di alto livello viene convertito in linguaggio intermedio (chiamato MSIL aka CIL). Ma quando compilo, ottengo un file exe/dll.Come posso visualizzare MSIL/CIL generato dal compilatore C#? Perché si chiama assemblaggio?
- Questo MSIL/CIL contiene questo file exe/dll?
- Voglio vedere quel codice di lingua intermedio. Solo per avere un'idea della sua esistenza. Come vederlo?
- Essi chiamano questo file exe/dll e
assembly
. Stanno usando questa "parola di fantasia" solo per differenziarli dai file exe/dll che contengono codice binario (codice nativo)?
Aspetta! Non si trova nella sextion '.text'? In caso contrario, cosa contiene '.text'? e cosa succede con il '' # pensavo che le sezioni abbiano un nome che inizia con '.'. Quindi non potrebbe essere '.strings' –
Sono curioso, perché è [ILDasm] (https://docs.microsoft.com/en-us/dotnet/framework/tools/ildasm-exe-il-disassembler) non consigliato? È solo incluso con (alcune versioni di?) Visual Studio? – Sinjai
Entrambi hanno i loro posti, ma per la maggior parte (> 99,99%) utenti ILSpy è la scelta giusta. La sua capacità di decompilare il codice IL in C# è inestimabile per la rapida navigazione e il reverse engineering di assiemi. Se stai facendo qualcosa che emette IL grezzo (ad esempio stai scrivendo un compilatore o riscrivendo IL, ad esempio con Mono.Cecil) allora ILDasm è utile perché può mostrarti la struttura grezza di IL, tabelle di token ecc. la maggior parte degli esperti non IL sarà confusa da quelli, quindi ILSpy è probabilmente tutto ciò che desideri e di cui hai bisogno. –