2010-10-18 32 views
2

Nous avons une application qui nécessite l'utilisateur d'être un administrateur pour exécuter. Ainsi, dans le app.manifest, nous avons mis en placeExécutable n'est pas signé après installé via MSI

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

Nous avons une clé pour signer nos assemblées avec, que je suis en mesure d'utiliser pour la signature du MSI et l'exécutable de notre application. L'exécutable de l'application est signé via signtool.exe dans l'événement post-construction du projet.

Si je regarde dans le répertoire bin, l'exécutable est bien signé correctement, mais après qu'il est empaqueté dans le msi et installé sur une autre machine, l'exécutable n'est plus signé. Cela ne devrait normalement pas être un gros problème, sauf que nous avons besoin de privilèges d'administrateur, donc quand l'utilisateur reçoit l'invite UAC, il affiche un éditeur inconnu.

Comment puis-je obtenir l'exécutable à signer après qu'il est empaqueté dans un MSI?

+0

Créez un fichier setup.exe au lieu d'un .msi, signez-le. –

+0

MSI peut s'en aller et mourir pour tout ce qui m'importe. – Joshua

Répondre

4

J'ai finalement trouvé la réponse sur un blog obscur. Lorsque le MSI est compilé, il ne tire pas du répertoire bin, il tire à partir du répertoire obj.

Fondamentalement, j'avais signé le mauvais exécutable.

+0

Pouvez-vous poster l'URL sur le blog? – phdesign

+0

Cela avait juste assez d'informations pour me faire réaliser ce qui n'allait pas avec mon installateur. Je vous remercie! –