Question

Cela semble si banal, mais je ne peux pas le faire au travail ..

J'ai une enveloppe msi.dll (nom Interop.WindowsInstaller.dll) que je dois signer. La façon de le faire est en le signant à l'importation (ce cas spécifique est même documentée dans MSDN: http://msdn.microsoft.com/en-us/library/zec56a0w.aspx ).

et - peu importe comment je le fais (w / ou w / oa keyfile, w / ou w / o ajouter "/ delaysign"), généré la taille de assemly est toujours 36,864 octets et quand Affichage des propriétés de la DLL il n'y a pas onglet « Signatures numériques » (inutile de dire - la DLL est pas signé).

Qu'est-ce que je manque ici ?? (... HELP! ...)

Était-ce utile?

La solution

[ Remarque : Finalement, je suis arrivé un soupçon de Karel Zikmund sur ce fil , qui m'a aidé à résoudre le mystère. Je vais coller ma réponse ici -. Pour le bien]

Alors, j'ai utilisé la ligne suivante pour vous inscrire à-importer l'ensemble:

tlbimp C: \ Windows \ system32 \ msi.dll /out:Interop.WindowsInstaller.dll /keyfile:MyKey.snk

J'ai ensuite copié le fichier à l'emplacement approprié et construit le projet, mais chaque fois que la construction a échoué sur l'erreur suivante: génération Assemblée a échoué - Assemblée Referenced « Interop.WindowsInstaller » ne dispose pas d'un nom fort .

Je pensais que le problème était avec la ligne tlbimp, mais après avoir lu la réponse de Karel Zikmund et de vérifier que la DLL est forte du nom (en utilisant sn -vf Interop.WindowsInstaller ) J'ai découvert le problème.

Ajout d'une référence à l'objet COM "Microsoft Windows Installer Object Library" en fait planté un bloc de code dans le fichier .csproj. Je ne savais pas, mais ce bloc le fichier causé DLL à régénérer à partir de zéro à chaque fois que le projet a été construit . Le fichier généré, bien sûr, n'a pas été nommé plus forte.

La façon dont je résolu était de supprimer la référence à « Microsoft Windows Installer Object Library » du projet, et ajouter un fichier direct référence à l'importation (et déjà signé) Interop .WindowsInstaller.dll fichier .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top