Мне нужно что-то, что может генерировать PDB из файла DLL (код C# .NET), есть ли какая-нибудь бесплатная программа для этого?
Создать PDB из файла .NET DLL?
Ответы (5)
Вам нужен исходный код для создания PDB.
На самом деле вы можете сделать это и с dotPeek, начиная с версии 1.2.
Щелкните правой кнопкой мыши сборку в Проводнике сборок и выберите «Создать Pdb». Он также имеет возможность генерировать файлы для сборок, на которые ссылаются, сразу.
Даже если у вас нет исходников и запутанного кода, вы можете создать pdb путем перекомпиляции с помощью ildasm и ilasm:
- декомпилировать сборку с помощью ildasm: ildasm /out=имя_сборки.il имя_сборки.dll
- скомпилировать с помощью ilasm: ilasm имя_сборки.il /dll /pdb
PDB содержит символы отладки, связанные с DLL, и обычно создается вместе с DLL. Чтобы включить создание файлов pdb, перейдите в проект Свойства, вкладка Сборка, кнопка Дополнительно... и выберите в Информация об отладке поле "только pdb" или "полное":
Если вам нужно отладить стороннюю сборку без исходников, то dotPeek и ReSharper будут чрезвычайно полезны, имея возможность генерировать PDB из DLL. В ReSharper это можно сделать через ReSharper > Windows > Проводник сборок, открыв нужную сборку и нажав "Создать Pdb... ":
Вы можете использовать ILSpy. Это удобное бесплатное приложение для дизассемблирования и создания pdb для управляемых dll.
PDB
, который является строго охраняемым секретом. Reflector может взять dll и превратить ее в решение, где вы можете использовать Visual Studio для его компиляции и одновременного создания PDB. Вы используете Visual Studio для создания PDB для вас, поскольку он знает секретный формат. - person Ian Boyd   schedule 12.02.2012