Debuggen van een MissingMethodExceptionStel je hebt zojuist een paar assemblies geinstalleerd die van een derde
partij komen. Je roept vanuit je eigen code die assemblies aan, maar ineens
krijg je een 'MissingMethodException'.
Hieronder de meest voorkomende redenen waarom dit kan gebeuren.
Fout tijdens het laden van de assembly
Controleer als eerste of er iets mis is gegaan tijdens het laden van een van
de assemblies. Kijk in de Fusion log en gebruik hiervoor de fusion viewer.
Deze kan via de Visual Studio Command Prompt gestart worden door
fuslogvw.exe te starten
Onverwachte versie van de assembly geladen
Mocht het laden van de assembly gelukt zijn, dan is het nog mogelijk dat de
verkeerde versie van de assembly geladen is. Zet in de fusion viewer
aan en log alles, niet alleen failures. Controleer nu de display names van
de assemblies die geladen worden. Kloppen deze niet, dan moet waarschijnlijk
de applicatie (deels) opnieuw gecompileerd worden.
Bestudeer de assembly
Nog geen succes. Gebruik dan ILDASM om te zien of er iets bijzonders is met
de assembly die volgens de Fusion Log wordt geladen.
Invalid IL
Nog niks gevonden? Probeer dan met PEVERIFIY.EXE de geladen assembly te
verifieren. Gaat er iets mis, gebruik dan de foutmelding om verder te
zoeken. Controleer ook of er tijdens het compileren van de code niet toch
ergens een foutmelding wordt gegeven.