Средство .NET Ildasm.exe похоже не выводит все исходные строки в выходной файл - PullRequest
0 голосов
/ 18 декабря 2010

Я создаю утилиту, которая читает строки исходного кода исполняемых файлов VB .NET, которые написала моя компания.Он использует утилиту ildasm.exe следующим образом:

ildasm.exe / NOBAR / UNICODE / SOURCE "AssemblyToRead.exe" /OUT="App_Dir\CodeOutput\CodeOutput.txt"

Это приводит к тому, что некоторая исходная строка сбрасывается в файл CodeOutput.txt.Тем не менее, кажется, что их исходная строка отсутствует в начале каждого исходного файла.Нередко в исходном файле пропускаются первые 10–20 строк кода.Кажется, что большинство других линий сделано верно.Кто-нибудь знает, что я делаю не так?Спасибо

1 Ответ

0 голосов
/ 18 декабря 2010

В исполняемом файле отсутствуют исходные строки, поэтому дизассемблер не может читать исходные строки из него.Что он делает, так это создает код, который будет компилироваться в один и тот же исполняемый файл.

Любые исходные строки, которые не производят исполняемый код, воссозданы не будут.Кроме того, некоторый код оптимизирован, поэтому, если строка не делает ничего полезного, она могла быть удалена при компиляции.

...