"Impossible de trouver le certificat de signature manifeste dans le magasin de certificats" - même lorsque vous ajoutez une nouvelle clé
Je ne peux pas construire des projets avec une signature de clé de nom forte - le message dans le titre apparaît toujours.
Oui le projet a été initialement copié à partir d'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.
Au secours!
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!
11 réponses
J'ai finalement trouvé la solution et j'espère vraiment que cela aidera quelqu'un d'autre aussi.
- modifiez le fichier
.csproj
du projet en question. -
Supprimer 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>
Accédez aux "propriétés" de votre projet dans visual studio. Ensuite, allez à l'onglet signature.
Assurez-vous ensuite que le clic une fois manifeste est désactivé.
Des Instructions Mises À Jour:
Dans votre Explorateur de solutions:
- clic droit sur votre projet
- cliquez sur propriétés
- généralement sur le côté gauche, Sélectionnez l'onglet "Signature"
- cochez le signe le ClickOnce manifeste
- assurez-vous d'enregistrer!
Essayez ceci: Clic droit sur votre projet -> Aller à l' propriétés -> Cliquez sur signature, qui est à gauche de l'écran -> Décochez le Signer le cliquez une fois manifeste -> Enregistrer & Build
- Ouvrez le .csproj fichier dans le bloc-notes.
-
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>
Accédez aux "propriétés" de vos projets dans visual studio. Ensuite, allez à l'onglet signature.
Assurez-vous ensuite que le clic une fois manifeste est désactivé.
Ou
1.Ouvert le .csproj fichier 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.
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 sur le système où se trouve le projet et importer le certificat. Démarrez le gestionnaire de certificats (certmgr) et sélectionnez les certificats personnels, puis faites un clic droit sous la liste des certificats existants et sélectionnez Importer à partir des tâches. Utiliser le parcourir pour trouver le .pfx dans le projet (la.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 suis familier avec C# et VS, donc si ce n'est pas votre environnement peut-être le .pfx sera ailleurs ou peut-être que cette suggestion ne s'applique pas. Après l'importation, vous devriez obtenir un message d'état. Si vous avez réussi, l'erreur de certificat de compilation devrait disparaître.
C'est simple!!
J'ai résolu ce problème en suivant ces étapes:
C'est ça!!
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 .le fichier pfx contient des clés publiques et privées dans un seul fichier. C'est ce que vous avez besoin d'importer.
Vous avez dit que vous avez copié des fichiers d'un autre ordinateur. Après les avoir copiés, les avez-vous "débloqués"? Plus précisément l' .le fichier snk doit être vérifié pour s'assurer qu'il n'est pas marqué comme dangereux.
Pour signer un assembly avec un nom fort en utilisant des attributs
Ouvrir AssemblyInfo.cs
(en $(SolutionDir)\Properties
)
Le AssemblyKeyFileAttribute
ou AssemblyKeyNameAttribute
, en spécifiant le nom du fichier ou du conteneur qui contient la paire de clés à utiliser lors de la signature de l'assembly avec un nom fort.
Ajouter le code suivant:
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
Si vous avez juste besoin de construire le projet ou la solution localement , la suppression de la signature peut être une solution simple comme d'autres le suggèrent.
Mais si vous avez cette erreur sur votre serveur de construction automation comme TeamCity où vous construisez vos morceaux de version réels pour le déploiement ou la distribution, vous pouvez envisager comment vous pouvez obtenir ce cert correctement installé dans le magasin cert sur la machine de construction, de sorte que vous obtenez un Packages signés à la fin de la construction.
Généralement il n'est pas recommandé de vérifier/valider les certificats PFX dans le contrôle de source, donc comment vous obtenez ces fichiers sur votre serveur de construction pendant le processus de construction est un peu une autre question, mais parfois les gens ont ce fichier stocké avec le code de la solution, de sorte que vous pouvez le trouver dans le dossier
Tout ce que vous devez faire est simplement d'installer ce certificat sous compte approprié sur votre serveur de construction.
Télécharger PsExec depuis Windows Sysinternals .
-
Ouvrez une invite de commande et entrez ce qui suit. Il va générer une nouvelle invite de commande, s'exécutant comme Système Local (en supposant que votre TeamCity s'exécute sous le compte système Local par défaut):
> psexec.exe -i -s cmd.exe
-
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
L'Importation Assistant de certificat va démarrer. Cliquez sur et sélectionnez Toutes les valeurs par défaut suggérées.
Exécutez la construction.
Tous les crédits va à Stuart Noble (et puis encore à Laurent Kempé je crois ☺).