2010-10-18 4 views
4

J'ai une DLL tierce que j'ai besoin d'utiliser dans mon application. Mon projet est signé avec un SNK donc je ne peux pas utiliser ces DLL non signées sans les signer.Utilisation de DLL non signées dans un projet qui est signé

J'ai essayé d'utiliser ildasm.exe comme expliqué here mais j'obtiens des messages d'erreur lorsque je tente de signer la DLL car la DLL contient du code non géré. Le message d'erreur que je reçois est "le fichier PE résultant est inutilisable" (la DLL utilise les appels P/Invoke).

Des idées que je peux faire ici?

+2

Les fournisseurs de logiciels qui expédient des DLL sans nom fort commettent un délit. Particulièrement criminel parce que c'est si facile à faire. Vous avez le droit d'insister sur une version nommée forte. –

Répondre

2

Si vous ne parvenez pas à obtenir une version signée de l'assembly tiers et que vous souhaitez que cela fonctionne, une solution consiste à charger dynamiquement la DLL au moment de l'exécution.

+0

Merci - cela a fonctionné :) Laide mais ma seule option à ce stade. – Madeleine

7

L'approche la plus simple consiste à reconstruire la DLL avec une clé. Vous ne nous avez rien dit au sujet de la DLL tierce ... si c'est une bibliothèque commerciale, je m'attends à ce que la société impliquée soit heureuse de vous donner un binaire signé. Si c'est une bibliothèque open source, vous pouvez le faire vous-même.

Si vous n'avez aucun moyen d'obtenir un binaire signé "normal", vous pourriez peut-être donner plus de détails sur la situation?

+0

J'ai demandé à la société propriétaire de la DLL (c'est comercial) de me fournir un binaire signé et j'attends leur réponse. N'y a-t-il rien d'autre que je puisse faire? Quels autres détails auriez-vous besoin dans ce cas? Merci! – Madeleine

+0

@Vixen: Sachant que c'est commercial, c'est le détail qui nous manquait. Je serais * très * inquiet s'ils ne voulaient pas vous donner un binaire fortement nommé - je considérerais cela comme un signe qu'ils ne sont pas vraiment sérieux au sujet de leur logiciel. –

+0

Pouvez-vous utiliser 'al.exe' dans ce but? – CJ7

Questions connexes