Программно захватывает информацию манифеста DLL с помощью Python или другого распространенного языка сценариев / инструмента - PullRequest
0 голосов
/ 06 марта 2010

У меня такая проблема:

http://svn.haxx.se/tsvnusers/archive-2008-07/1051.shtml

За исключением того, что приложение является нашим собственным (извините, вам не сообщат конфиденциальные данные). Хотя мы не виноваты в том, что SideBySide имеет такой недостаток.

Так или иначе, версия X работает и бомбы версии Y прямо в начале. Передо мной стоит задача пройтись по куче каталогов и до 100 dll-файлов, чтобы выяснить, в чем может быть разница.

Похоже, что существует конфликт между двумя DLL-файлами, которые загружают две разные версии другого DLL-файла.

Буду признателен за помощь с фрагментом Python / other для извлечения манифеста из заданного файла. Спасибо!

РЕДАКТИРОВАТЬ: Кстати, я нашел способ: я могу запустить следующую команду (mt.exe является частью инструментов Visual Studio 2008): mt.exe -inputresource:MyFile.dll;#2 -out:MyFile.dll.extracted_manifest.txt.

Это хорошее начало, но есть две проблемы:

  1. Может быть несколько встроенных манифестов (в моем понимании): # 1, # 2, # 3, ... - Я не знаю, какие и сколько опережают время. Какой максимум?
  2. Если я угадываю и запускаю mt.exe с этим параметром, я получаю ошибку. Устранение этих ошибок сделает скрипт длиннее.

Может кто-нибудь пролить свет на это, пожалуйста?

ДРУГОЕ РЕДАКТИРОВАНИЕ: Ах, неважно! 1 для .exe, 2 для DLL и все. Я думаю, я знаю, что делать сейчас. Однако, если у вас есть решение, которое превосходит мое, или если у вас есть автоматические вызовы mt.exe из сценария Python / другой, вы можете поделиться им.

1 Ответ

0 голосов
/ 09 марта 2010

Ручной метод грубой силы (нажатия) работал быстрее. Заняло всего несколько часов.

...