Nom fort de validation a échoué pour l'application
J'ai fait une application en c# qui utilise C:\Program Files (x86)\de Référence Assemblies\Microsoft\WindowsPowerShell\3.0\System.Management.Automation.dll
J'ai aussi copié les dll dans mon dossier bin. Il fonctionne très bien, mais si je copie le dossier bin pour une autre machine et lancer l'exécutable, j'obtiens cette erreur:
************** Exception Text **************
System.IO.FileLoadException: Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)
File name: 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A)
Note: je ne suis pas signer les assemblées à tous.
Aussi je ne veux pas désactiver la sécurité en modifiant les clés de registre. J'ai juste envie de le fixer correctement.
Toutes les idées sur la façon de résoudre ce problème à l'échelle mondiale sans enregistrement de la dll?
Mises à jour: j'ai essayé de copier l'intégralité d'un projet visual studio à l'autre de la machine. Il ne fonctionne pas sur windows 7 alors qu'il travaille sur windows 8.
Essayez de regarder ce DONC, la question: stackoverflow.com/questions/17463679/...
OriginalL'auteur max | 2014-12-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez supprimer la référence forte à l'assemblée, dans votre application.confg en changeant
à
Mais je dirais obtenir de plus amples renseignements au sujet de exactement ce qui est mal, à l'aide de Fuslogvw (qui peut être copié sur le serveur de destination, avec un support dll).
Cela va vous montrer exactement où l'application de sondage pour les dll, ce qui est à l'origine du problème. Peut-être que vous avez une autre dll, vous devez ajouter à votre dossier bin, ou peut-être le GAC est de gagner sur une autre dll.
OriginalL'auteur bigtlb
Je pense que le problème est que le chemin que j'ai fait il ne fonctionne que sur windows 8 car il a une nouvelle version de cette dll.
Pour le faire fonctionner sur windows 7:
< Référence Incluent="le Système de.De la gestion.Automatisation" />
changé le code d'authentification pour cette
SecureString securePwd = new SecureString();
laissez-passer.ToCharArray().ToList().ForEach(p => securePwd.AppendChar(p));
PSCredential credentials = new PSCredential(nom d'utilisateur, securePwd);
chaîne shellUri = "http://schemas.microsoft.com/powershell/Microsoft.PowerShell";
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(faux, hôte, 5985, "/wsman", shellUri, les informations d'identification, 100000);//délai d'attente est exprimée en millisecondes
OriginalL'auteur max
[Utilisation de cette solution si vous avez des problèmes lors des Tests binaires]
J'ai le même problème que l'auteur. J'ai enlevé le nom fort sur le system.management.automation.dll à l'aide de snremove.exe
snremove -r .\system.management.automation.dll
(Et supprimer nom fort pour tous vos binaires utilisés pour les tests.)
http://www.nirsoft.net/dot_net_tools/strong_name_remove.html
Il fonctionne bien maintenant. Je le fais uniquement parce que je n'ai pas envie de vérifier dans mes fichiers binaires avant de tester. Une fois contrôlés, mon binaires sont signés par l'accumulation et je n'ai pas à vous soucier de nom fort.
OriginalL'auteur AdmiralThrawn