Ich erstelle ein Plugin für ein Produkt, das Plugin-DLLs mit Assembly.Load(byte[])
lädt. Das ist alles sehr gut und gut, aber es bedeutet, dass ich keine konventionellen Mittel habe, die Debugging-Symbole zu laden, um durch meinen Code zu gehen.Wie debuggen Sie eine Assembly, die über Assembly.Load (byte []) geladen wurde?
Das Verrückte ist, vor ein paar Monaten hatte ich genau das gleiche Problem und löste es - und Junge war ich stolz auf mich! So weiß ich, dass es getan werden kann, ich habe gerade vergessen, wie!
Ich habe ein paar vage Erinnerungen an Dinge, die ich habe versucht vielleicht, aber ich kann die Details aus meinem Kopf nicht necken:
- .NET Reflector
- Wahrscheinlich obwohl falsch, weil ich weiß noch genau, Datei
- Verwenden des IIS Express statt Cassini den ursprünglichen CS- Schreiten durch
- Aber das scheint mir ein Wehr d Lösung - Die Assembly wird von einem Byte-Array geladen, so dass das Framework nichts darüber weiß, woher die DLL stammt oder wie eine entsprechende PDB aussehen könnte, wenn sie eine solche sehen würde. Dieses Problem sollte in jeder Umgebung vorhanden sein.
- die Symbole manuell über die "Module" Fenster Laden
- versucht, diese; Ich bekomme "Die Symboldatei xxxxx.pdb passt nicht zum Modul" - weil wir natürlich von einem Byte-Array laden, nicht die DLL selbst.
Wahrscheinlich haben Sie die Überladung Load (byte [], byte []) verwendet. –
Ich würde gerne in der Lage sein, das zu tun, aber das Produkt ist Closed-Source. Ich weiß 'Assemly.Load (byte [])' wird verwendet, weil ich Reflector verwendet habe. Ich * könnte * sie bitten, 'byte [], byte []' zu verwenden und nach einer .pdb-Datei zu suchen, aber dann müsste ich warten, wer weiß, wie lange das nächste Release dauert (vorausgesetzt, es wird überhaupt genehmigt). Danke aber :) –
Wird Ihre Assembly stark benannt? –