2010-11-22 29 views
10

Je comprends l'idée de base derrière la signature des assemblages, mais j'ai un problème lors de l'utilisation de Telerik ou de DLL de deuxième partie. J'ai un .exe qui utilise 2 de mes propres .DLLs, les DLL utilisent à leur tour les DLL de la bibliothèque Enterprise et les DLL Telerik.signer des assemblys avec un nom fort, ok, mais que se passe-t-il si une DLL tierce n'est pas signée?

J'ai donné à tous mes projets un nom fort .snk, mais lors de la compilation, le compilateur explique que les DLL de bibliothèque d'entreprise, par exemple, ne sont pas signées, ce qui est logique.

Je ne veux pas désactiver la vérification avec la commande te sn.exe -Vr ou même retarder mes projets. Mais alors comment cela va-t-il fonctionner? Je suis reconnaissant pour toute idée.

Répondre

4

Il est peu pratique, mais pas la science de fusée pour signer/démissionner des assemblées de tiers. En supposant que vous voulez signer un dll non signé comme System.ComponentModel.Composition.dll avec la touche default.snk:

ouvrir l'invite de commande VS et cd dans votre dossier avec le dll non signé (s)

 
ildasm /all /out=System.ComponentModel.Composition.il System.ComponentModel.Composition.dll 
ilasm /dll /key=default.snk System.ComponentModel.Composition.il 
del System.ComponentModel.Composition.il 

Dans chaque projet VS applicable, supprimez et ajoutez la référence à votre assembly signé System.ComponentModel.Composition.dll

+0

L'assembly de signature installé via le package nuget est-il recommandé? – Vivekh

+0

Ne pas oublier '/ resource = somename.res' si le fichier' .res' a été créé par 'ildasm' – n0rd