Signer des assemblages avec des fichiers PFX dans MSBuild, Team Build et TFS

je reçois cette erreur en essayant de construire un projet en utilisant Team Build ( MSBuild ) sur TFS 2010:


C:WindowsMicrosoft.NETFrameworkv4.0.30319Microsoft.Common.targets (1970):

Ne peut importer le fichier clé suivant: CCC.pfx.

Le fichier clé peut être protégé par mot de passe.



Pour corriger cela, essayer d'importer le certificat à nouveau ou installer manuellement le certificat au nom fort CSP avec le nom de conteneur clé suivant: VS_KEY_C00C673BBB353901

C:WindowsMicrosoft.NETFrameworkv4.0.30319Microsoft.Common.targets (1970):

L'importation de fichier de la clé "CCC.pfx" a été annulé.


tout Cela s'appuie sur OK dans Visual Studio 2010. L'assemblage est signé avec un fichier PFX . Habituellement, dans Visual Studio, On nous demande le mot de passe la première fois que nous construisons, mais plus jamais...

j'ai essayé de courir:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 

comme autres réponses suggérées dans la question sur le débordement de la pile ne peut pas importer le fichier-clé" blah.pfx' - erreur "Le fichier peut être protégé par mot de passe' . J'ai essayé de l'importation dans le magasin de certificats personnels comme suggéré dans la question de débordement de pile en utilisant MSBuild pour signer ClickOnce ou l'assemblage résulte en erreur MSB3321 . Mais en vain, toujours la même erreur.

Comment faire? Est-ce que je dois d'une façon ou d'une autre ajouter le certificat au compte Windows sous lequel le service de compilation fonctionne ou quelque chose comme ça?

alternativement, comment faire pour que la construction soit faite en Team Build pas utiliser signer? Je veux juste vérifier qu'il compile et exécuter les tests unitaires. Je n'ai pas besoin de signer pour ça.

20
demandé sur Community 2010-10-26 19:38:00

6 réponses

Vous avez besoin d'adapter cette réponse à votre spécifique. Quelque chose comme:

sn -i companyname.pfx VS_KEY_C00C673BBB353901
9
répondu heavyd 2017-05-23 12:18:19

ce que j'ai fait n'est pas si élégant, mais fonctionne: connectez-vous en tant qu'utilisateur qui exécute msbuild sur la machine de construction, invoquez manuellement msbuild, puis tapez le mot de passe lorsqu'on vous le demande. Il va maintenant être sauvegardé dans la boutique de certificats de cet utilisateur, et maintenant les constructions peuvent fonctionner sans surveillance.

8
répondu gregmac 2010-10-27 04:59:55

ce qui l'a finalement corrigé pour moi était de faire le compte sous lequel TFS Build service exécute un administrateur sur la machine locale.

Je ne sais pas si les autres choses que j'essayais avant doivent aussi être faites pour le faire fonctionner. Mais avant, il a été administrateur, il n'a pas de travail après qu'il soit devenu admin, il a travaillé.

5
répondu MikeG 2010-10-29 10:42:23

j'ai eu la même erreur, et après avoir lu votre commentaire" administrateur " - j'ai juste lancé L'invite de commande VS en tant Qu'administrateur et ça fonctionne maintenant très bien.

1
répondu Zar Shardan 2012-03-23 23:56:38

j'ai été logés à la même question

scénario 1: projet de construction en système local

dans mon cas je recevais l'erreur de signature de manifeste une fois que je télécharge le projet de TFS et le construis.

pour éviter ce problème j'ai cliqué droit sur le Projet = = > Propriétés = = > signature puis non vérifié "signer les manifestes ClickOnce"

ou

vous pouvez cliquer sur sélectionner à partir du bouton store et sélectionner votre ID de connexion à partir de la boîte de dialogue Ouvrir.

ou

vous pouvez installer le fichier PFX manuellement et cliquer plus tard sur le bouton Options pour installer ces certificats.

scénario 2: - erreur manifeste pendant la construction

ici pour résoudre cette erreur, j'ai cliqué pour la première fois sélectionner de magasin Bouton et sélectionnez Mon identifiant de connexion dans la boîte de dialogue .Ensuite j'ai engagé ce projet dans TFS d'abord et ensuite j'exécute la construction.

0
répondu Sunny656 2015-07-31 11:31:08

j'avais les réglages suivants:

<PropertyGroup>
  <SignAssembly>false</SignAssembly>
  <AssemblyOriginatorKeyFile>MyKey.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup>
La signalisation

a été désactivée, mais la signalisation AssemblyOriginatorKeyFile a causé une erreur lors de l'affichage du Manifeste. Supprimé AssemblyOriginatorKeyFile pour le fixer.

0
répondu Der_Meister 2018-05-08 07:38:09