web-dev-qa-db-fra.com

"Impossible de trouver le certificat de signature du manifeste dans le magasin de certificats", même si vous ajoutez une nouvelle clé

Je ne peux pas construire de projets avec une signature de nom fort. Le message dans le titre est toujours affiché.

Oui, le projet a été initialement copié depuis une autre machine. Cependant, même si j'ajoute une nouvelle clé via l'onglet Signature dans les propriétés du projet, cette erreur est toujours affichée.

J'ai essayé d'exécuter Visual Studio en tant qu'administrateur et j'ai essayé d'ajouter manuellement les clés au magasin de certificats Windows.

Aidez-moi!

Edit: Je ne reçois pas cette erreur avec un nouveau projet, mais j'aimerais bien que ce projet existant fonctionne. Cela ne fonctionnera pas même si je crée un nouveau certificat!

98
Marcus

J'ai enfin trouvé la solution et j'espère vraiment que cela aidera aussi quelqu'un d'autre.

  1. Editez le fichier .csproj pour le projet en question. 
  2. Supprimez les lignes de code suivantes:

    <PropertyGroup>
       <ManifestCertificateThumbprint>...........</ManifestCertificateThumbprint>
    </PropertyGroup>
    <PropertyGroup>
       <ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
    </PropertyGroup>
    <PropertyGroup>
       <GenerateManifests>true</GenerateManifests>
    </PropertyGroup>
    <PropertyGroup>
       <SignManifests>false</SignManifests>
    </PropertyGroup>
    
150
Marcus

Accédez aux "Propriétés" de votre projet dans Visual Studio. Ensuite, allez à l'onglet de signature.

Assurez-vous ensuite que les manifestes Signer une fois sont désactivés.


Instructions mises à jour: _

Dans votre explorateur de solutions:

  1. clic droit sur votre projet
  2. cliquez sur propriétés
  3. généralement sur le côté gauche, sélectionnez l'onglet "Signature"
  4. cochez la case Sign the ClickOnce
  5. Assurez-vous d'économiser!

 enter image description here

90
ADL
  1. Ouvrez le fichier .csproj dans le Bloc-notes.
  2. Supprimez les informations suivantes relatives à la signature du certificat dans le magasin de certificats.

    <PropertyGroup>
      <ManifestCertificateThumbprint>xxxxx xxxxxx</ManifestCertificateThumbprint>
      <ManifestKeyFile>xxxxxxxx.pfx</ManifestKeyFile>
    <GenerateManifests>true</GenerateManifests>
    <SignManifests>false</SignManifests>
    </PropertyGroup>
    
9
Rajamohan Rajendran

Essayez ceci: Faites un clic droit sur votre projet -> Aller à propriétés -> Cliquez signature à gauche de l'écran -> Décochez le Signer le clic une fois se manifeste -> Enregistrer et construire

9
Charming ZooZoo

Accédez à vos projets "Propriétés" dans Visual Studio. Ensuite, allez à l'onglet de signature.

Assurez-vous ensuite que les manifestes Signer une fois sont désactivés.

OU 

1.Ouvrez le fichier .csproj dans le Bloc-notes.

2. Supprimez les informations suivantes relatives à la signature du certificat dans le magasin de certificats xxxxx xxxxxx xxxxxxxx.pfx vrai faux `

Travaillé pour moi 

4
Ash

C'est simple!!

J'ai résolu ce problème en suivant ces étapes:

  1. Ouvrir les propriétés du projet  img
  2. Cliquez sur l'onglet Signature
  3. Et décochez "Signer l'Assemblée"

C'est tout!!

3
Amit Kadam

En supposant qu'il s'agisse d'un certificat personnel créé par Windows sur le système à partir duquel vous avez copié votre projet, vous pouvez utiliser le gestionnaire de certificats du système sur lequel se trouve le projet et importer le certificat. Démarrez le gestionnaire de certificats (certmgr), sélectionnez les certificats personnels, cliquez avec le bouton droit de la souris sous la liste des certificats existants et sélectionnez Importer à partir des tâches. Utilisez le navigateur pour rechercher le fichier .pfx dans le projet (le fichier .pfx du système précédent que vous avez copié avec le projet). Il devrait être dans le sous-répertoire avec le même nom que le répertoire du projet. Je connais bien C # et VS, donc si ce n’est pas votre environnement, peut-être que le .pfx sera ailleurs ou peut-être que cette suggestion ne s’applique pas. Après l'importation, vous devriez recevoir un message d'état. Si vous avez réussi, l'erreur de certificat de compilation devrait disparaître.certmgr screen

2
dpminusa

Pour signer un assemblage avec un nom fort à l'aide d'attributs

Ouvrez AssemblyInfo.cs (dans $(SolutionDir)\Properties)

AssemblyKeyFileAttribute ou AssemblyKeyNameAttribute, en spécifiant le nom du fichier ou du conteneur contenant la paire de clés à utiliser lors de la signature de l'assembly avec un nom fort.

ajoutez le code suivant:

[Assembly:AssemblyKeyFileAttribute("keyfile.snk")]
0
QuangNHb

Vous avez dit que vous avez copié des fichiers depuis un autre ordinateur. Après les avoir copiées, les avez-vous débloquées? Plus précisément, le fichier .snk doit être vérifié pour vous assurer qu'il n'est pas marqué comme non sécurisé.

0
Owen Wengerd

Si vous avez simplement besoin de générer le projet ou la solution localement, alors supprimer la signature peut s’avérer une solution simple et mortelle comme le suggèrent d’autres.

Mais si vous rencontrez cette erreur sur votre serveur de génération d'automatisation tel que TeamCity, où vous construisez vos éléments de version réels pour le déploiement ou la distribution, vous voudrez peut-être examiner comment vous pouvez installer ce certificat correctement dans le magasin de certificats de la machine de génération, afin un paquet signé à la fin de la construction.

En règle générale, il n'est pas recommandé d'inscrire/de valider les certificats PFX dans le contrôle de code source. La manière dont vous obtenez ces fichiers sur votre serveur de construction au cours du processus de construction est une question un peu différente, fichier stocké avec le code de solution, afin que vous puissiez le trouver dans le dossier du projet.

Tout ce que vous avez à faire est simplement d’installer ce certificat sous le compte correct sur votre serveur de build.

  1. Télécharger PsExec à partir de Windows Sysinternals .

  2. Ouvrez une invite de commande et entrez les informations suivantes. Il créera une nouvelle invite de commande, exécutée sous le nom Local System (en supposant que votre TeamCity s'exécute sous le compte système local par défaut):

    > psexec.exe -i -s cmd.exe

  3. Dans cette nouvelle invite de commande, accédez au répertoire contenant le certificat et entrez le nom du fichier à installer (remplacez le nom du fichier par le vôtre):

    > mykey.pfx

  4. L'assistant d'importation de certificat va démarrer. Cliquez et sélectionnez toutes les valeurs par défaut suggérées.

  5. Exécutez la construction.

Tous les crédits vont à Stuart Noble (et ensuite à Laurent Kempé je crois).

0
Sevenate

Il ne suffit pas d'ajouter manuellement des clés au magasin de certificats Windows. Le certificat contient uniquement la clé publique signée. Vous devez également importer la clé privée associée à la clé publique dans le certificat. Un fichier .pfx contient des clés publiques et privées dans un seul fichier. C'est ce que vous devez importer.

0
Owen Wengerd