2010-03-05 2 views
0

J'ai un problème comme celui-ci:saisir Programmatically DLL d'informations manifeste avec Python ou un autre langage de script commun/outil

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

Sauf que l'application est notre (désolé, ne vous donnera pas détails confidentiels). Bien, ce n'est pas notre faute si SideBySide est si imparfait.

Quoi qu'il en soit, la version X fonctionne et les bombes de la version Y sont au départ. Je suis confronté à la tâche de marcher à travers un tas de répertoires et jusqu'à 100 fichiers dll pour comprendre quelle peut être la différence.

Il semble qu'il y ait un conflit entre deux fichiers dll qui chargent deux versions différentes d'un autre fichier dll.

J'apprécierais votre aide avec un fragment Python/autre pour extraire un manifeste d'un fichier donné. Merci!

EDIT: D'ailleurs, j'ai trouvé un moyen: je peux exécuter la commande suivante (mt.exe fait partie de Visual Studio 2008 Outils): mt.exe -inputresource:MyFile.dll;#2 -out:MyFile.dll.extracted_manifest.txt.

Ceci est un bon début, mais il y a deux problèmes avec elle:

  1. Il peut y avoir plusieurs intégrés (se manifeste dans ma compréhension): # 1, # 2, # 3, ... - I Je ne sais pas lesquels et combien d'avance. Quel est le maximum?
  2. Si je devine et exécute mt.exe avec ce paramètre, j'obtiens un échec. Traiter ces erreurs rendrait le script plus long.

Quelqu'un pourrait-il nous éclairer?

AUTRE EDIT: Ah, tant pis! 1 est pour .exe, 2 est fo dll et c'est tout. Je suppose que je sais quoi faire maintenant. Cependant, si vous avez une solution qui bat la mienne, ou si vous avez des appels automatisés à mt.exe à partir d'un script Python/other, n'hésitez pas à le partager.

Répondre

0

Une approche manuelle par force brute (clic) a fonctionné plus rapidement. Ça n'a pris que quelques heures.

Questions connexes