"не является модулем .NET." что это значит? - PullRequest
1 голос
/ 27 июня 2011

Я использую бета-версию 7.2 отражателя, и когда я пытаюсь отразить какой-нибудь exe-файл, я вижу это сообщение. что это значит?

спасибо

Ответы [ 5 ]

6 голосов
/ 27 июня 2011

Это означает, что EXE не является сборкой .NET. Это стандартный исполняемый файл Windows или COM-файл.

Например, программы, написанные на VB6, не являются сборками .NET;они не содержат ни одного из метаданных , которые, как вы ожидаете, будут содержать сборку .NET.

3 голосов
/ 05 июля 2011

Если это действительно сборка .NET (как предполагают некоторые ваши последующие комментарии, основанные на информации из Spy ++), то она, возможно, была запутана. Некоторые обфускаторы могут модифицировать потоки метаданных сборки, чтобы они казались недопустимыми как для ildasm, так и для Reflector, тогда как CLR все равно может их загружать, поскольку не выполняет такой большой проверки.

НТН,

Bart

0 голосов
/ 27 июня 2011

Вы пытаетесь отразить COM или собственную исполняемую / динамическую библиотеку, а не сборку .NET. Отражатель не может этого сделать. Существуют и другие инструменты для изучения COM-ресурсов, хотя они не будут полностью разбираться, как Reflector в сборках .NET.

0 голосов
/ 27 июня 2011

Я думаю, что он ищет заголовок CLI, указывающий, что .exe на самом деле является сборкой .NET, и он не выглядит так, как у вас.

0 голосов
/ 27 июня 2011

.Net Reflector может декомпилировать только сборки .NET.Я полагаю, что исполняемый файл не является исполняемым .NET, и, следовательно, Reflector не может загрузить его.

...