La récente mise à niveau de NHibernate 2.1 a apporté une situation de maux de tête Mega à la surface. p>
Il semble que la plupart des projets construisent par défaut comme des assemblages signés. Pour Exemple de références fluentnibernate Le fichier clé fluent.snk. p>
Nibernate.Search construit non signé à partir de ce que je peux rassembler et ne pas construire Signé c'est si vous faites référence à un fichier clé généré, vous obtenez l'erreur: p>
Assemblée référencé 'lucene.net' n'a pas de nom fort p>
Cela signifie que des projets comme le château.aciverecord qui ont NHibernate.Search comme une dépendance ne construira pas comme vous obtenez l'erreur horrible référencée Assembly Nhibernate.Search n'a pas de nom fort: P>
Si quelques projets utilisent CASLTE.ACTIVERCORD afin qu'il soit assez important que Cela construit. p>
Quelqu'un a-t-il une idée de quoi faire ici car je suis totalement à l'abri des idées? p>
C'est une folie complète. p>
4 Réponses :
La chose est que vous ne pouvez pas faire référence à des assemblages non solides nommés à partir d'assemblages solides nommés, mais vous pouvez faire l'inverse. C'est pourquoi chaque projet décent devrait être signé. P>
Lorsque je rencontre ce problème, je dépose une ligne à l'auteur du projet (ou enregistrez-vous un problème) avec l'explication dans mon commentaire ci-dessus, et pendant que j'attends un correctif, je compile et le signer moi-même. p>
+1. Ouais, les options sont soit prenez le contrôle vous-même et sentez-vous, soit de faire tout ce genre de choses non signé (ce qui n'est généralement pas un bon choix).
source http://www.andrewconnell.com/blog /Rarchive/2004/12/15/772.aspx P>
Il existe un guide détaillé publié à http : //buffered.io/postS/net-fu-signing-an-unsigned-Assembly-WithOut-Delay-Signant . P>
En résumé, la procédure est la suivante: P>
ildasme code> li>
- Reconstructionnez / réassemblez à l'aide de
Ilasm code>, cette fois avec une touche LI>
ul> Toutes les réponses données ont une faille grave dans eux - elles ne fonctionnent pas s'il y a plus d'une assemblée non signée qui dépend de l'autre. Vous devrez éditer les fichiers IL manuellement pour modifier des références non signées à des signes signés. C'est certainement possible, mais Erreur sujette. P>
Il y a une bien meilleure façon. Tout d'abord, voici mes sources: p>
Le premier est un lien vers un package Nuget appelé Strongnaming, ce qui permet de nommer fortement des assemblages et qu'il s'occupe également de références non signées pour vous! Le second explique comment télécharger des packages Nuget sans studio Visual, si nécessaire. P>
I, personnellement, utilisé le studio Visual pour le télécharger à l'aide du gestionnaire de packages Nuget lui-même, cependant, vous pouvez toujours naviguer directement sur https://www.nuget.org/api/v2/package/nivot.strongnaming/1.0.4.2 et téléchargez le nivot.strongning.1.0.4.2.zip p>
Il existe un dossier code> outils code> dans le zip téléchargé (ou le package si Nuget a été utilisé). Une fois que vous avez bien installé, vous pouvez facilement l'installer en tant que module PowerShell. P>