J'essaie de construire une clickonce Formulaires Windows Projet (.NET 3.5 / Visual Studio 2010) sur un ordinateur serveur Windows. (dans le but d'automatiser le processus de construction avec Hudson CI .) em> p>
Pour la signature du manifeste ClickOnce, j'ai créé une clé temporaire dans Visual Studio, C: \ Windows \ Microsoft.net \ Framework64 \ V4.0.30319 \ Microsoft.common.Targets (1970,9): Erreur MSB3326: Impossible d'importer le fichier de clé suivant :. Le fichier clé peut être protégé par mot de passe. Pour corriger cela, essayez d'importer à nouveau le certificat ou d'importer manuellement le certificat dans le magasin de certificats personnels de l'utilisateur actuel. [C: .Hudson \ emplois [...]. CSPROJ] P>
C: \ Windows \ Microsoft.net \ Framework64 \ V4.0.30319 \ Microsoft.common.Targets (1970,9): Erreur MSB3321: Importation de fichier de clé "TEMP.PFX" a été annulée. [C: .Hudson \ emplois [...]. CSPROJ] P>
blockQuote>
J'ai essayé toutes les questions et réponses suivantes sans chance: p>
Stack Whidflow Question Impossible d'importer le fichier KeyFile 'bla.pfx' - Erreur "Le fichier clé peut être protégé par mot de passe" < / a> em> p>
=> Dans mon cas, le message d'erreur n'indique pas un nom d'un magasin de certificats, mais dit "le magasin de certificats personnels de l'utilisateur actuel" à la place. P>
=> Même lorsque vous essayez la réponse acceptée avec "personnel" comme nom de conteneur ( Échec de l'analyse du blob de PKCS # 12 dans Alis_temporarykey.pfx - une erreur interne o
CCURRED. P>
blockQuote> li>
pile Dépassement de la question Utilisation de MSBuild pour signer ClickOnce ou Assembly entraîne une erreur MSB3321 em> < / p>
=> J'ai essayé la réponse acceptée, mais le fichier clé ne peut pas être importé car "soit le profil utilisateur n'est pas accessible ni la clé privée que vous importation peut nécessiter un fournisseur de services cryptographiques qui n'est pas installé sur votre système " em> p>
=> La même chose se produit si j'essaie d'importer le fichier en double-cliquant sur elle dans l'Explorateur Windows (Suggestion de RobindotNet) P> Li>
Stack Overflow Question Signature d'assemblys avec des fichiers PFX dans MSBUILD, Construction de l'équipe et TFS EM > p>
=> La puissance de cette question a également échoué avec les deux réponses ci-dessus, mais malheureusement, pas même les réponses qu'il a aidées à m'aider: P>
connectez-vous en tant qu'utilisateur qui exécute Msbuild sur la machine de construction, invoquez manuellement MSBuild, puis tapez le mot de passe lorsque vous y êtes invité. P>
blockQuote>
=> I connecté et RAN Qu'est-ce qui lui a finalement réparé pour moi, faisiez le compte dans lequel le service de construction TFS exécute un administrateur sur la machine locale. P>
blockQuote>
=> Le compte qui exécute Hudson (plus précisément: Tomcat ) déjà est em> un administrateur local. J'ai essayé d'exécuter Msbuild à partir d'une ligne de commande "Exécuter en tant qu'administrateur" et obtiendrait les mêmes messages d'erreur toujours. P> li>
ul>
update 2: strong> Si je prends une ancienne clé temporaire que j'avais générée avec Visual Studio 2008, elle peut être importée avec succès dans le magasin de certificats de notre serveur; Toutes les clés temporaires que j'ai créées avec Visual Studio 2010 ne peuvent être importées. P>
Temp.pfx Code>. Je peux construire et déployer avec succès le projet de Visual Studio sur mon poste de travail. Mais lors de l'exécution MSBUILD sur le serveur I Obtenir les messages d'erreur suivants: P>
sn -i temp.pfx personnel code>), il ne parvient pas à analyser la clé: p>
msbuild myProject.sln code> mais cela ne me demanderait même pas le mot de passe. P>
4 Réponses :
Copiez le fichier PFX sur la machine que vous effectuez les constructions. Double-cliquez dessus et installez-le dans le gestionnaire de certificats sur la machine. Assurez-vous que vous êtes connecté au compte utilisé pour effectuer les constructions. p>
Autres suggestions / questions: avez-vous la bonne version de .NET installée sur la machine? Avez-vous des privilèges pour écrire dans le magasin de certificats sur cette machine? p>
Si vous ouvrez le projet Visual Studio, accédez aux propriétés du projet et essayez de créer un nouveau certificat, cela fonctionne-t-il? Il devrait créer un fichier PFX et l'ajouter au projet. Et pouvez-vous le voir dans le magasin de certificats (Menu Démarrer / Certmgr.msc)? P>
Cela entraîne la même chose que la deuxième approche que j'ai mentionnée :-(
Pour être honnête, je ne sais pas ce que "Hudson" est. Avez-vous la bonne version de .NET installée sur la machine? Aussi, avez-vous des privilèges pour écrire dans le magasin de certificats sur cette machine? Si vous ouvrez un projet Visual Studio et accédez aux propriétés du projet et essayez de créer un nouveau certificat, cela fonctionne-t-il? Il devrait créer un fichier PFX et l'ajouter au projet. Et pouvez-vous le voir dans le magasin CERT? (start / cermgr.msc)
J'ai reformulé la question de savoir que, de manière à rendre Hudson uniquement un détail dans une note latérale.
Quant à votre suggestion: J'ai essayé cela, et cela a fonctionné! B> Puis je l'ai copié à mon propre poste de travail et que je pouvais l'utiliser pour la signature. Serait simplement intéressant de savoir quelle est la différence significative - les deux sont des machines de 64 bits avec VS 2010. L'un est Windows Server ... a mis à jour ma question en conséquence.
Eh bien, c'est ce que je sais. Nous avons plusieurs projets ClickOnce signés avec un certificat de signature de code. Chaque année, lorsque le certificat expire, nos autobuilds dans TFS échouent. Nous devons nous connecter au serveur sous le compte qui effectue les autobuilds et importer le fichier PFX. Il doit être dans le magasin de certificats de l'utilisateur. Sinon, quand il fait la construction, il essaie de demander au mot de passe, ce qui ne fonctionne pas pour des raisons évidentes. Je n'ai jamais essayé de le mettre dans le magasin de la machine, mais vous pourriez essayer cela. Post retour et je vais vous fournir des instructions si vous en avez besoin.
BTW - pendant que vous parlez de «Autobuilds in TFS» - vous demandiez ce qu'est Hudson. C'est fondamentalement quelque chose de similaire. Une application de serveur qui construit automatiquement votre code lorsque vous commettez des modifications.
BTW II: Vous voudrez peut-être incorporer votre suggestion du commentaire de votre réponse pour le rendre plus visible.
Et si vous n'avez pas accès à la machine, mon cas est son service hébergé en ligne TFS. Toute façon de le signer alors?
Et si vous utilisez VisualStudioOnline? Vous ne pouvez pas vous connecter au serveur de construction car il s'agit d'une solution hébergée.
J'ai eu le même problème, ne pouvait importer sur la machine TFS. S'avère que je devais l'exporter sur la machine de développeur (propriétés du projet, page de signature, cliquez sur Plus de détails) Plus en détail -> Détails de l'onglet, puis il suffit d'exporter avec un mot de passe. Copiez ce fichier exporté sur TFS et utilisez le même mot de passe: fait p>
Ces étapes sont trop vagues pour être vraiment utiles.
J'ai trouvé que si vous créez un fichier temporaire.pfx et laissez le mot de passe vide, cela fonctionnera correctement sur la machine de construction. Je n'ai pas réalisé que vous pouviez le laisser vide et la première fois qu'il a échoué comme pour OP. Créé un deuxième temp.pfx sans mot de passe et il est construit sur le serveur de construction pour moi. P>
Un PFX sans mot de passe n'est pas très sécuritaire cependant :-)
J'ai totalement le même problème. Et corrigé-le en installant Windows SDK 7.1 pour .NET 4.0 sur la machine de construction. PS Au début, nous avons installé SDK 8.0a et construire allait bien, sauf pour chanter. Il semble que 7.1 met à jour certains composants du système, de sorte que PFX commence à fonctionner. P>