J'ai une assemblée, qui fonctionne très bien sur mon pc, mais lorsque je tente de le référencer sur une machine virtuelle, j'obtiens l'erreur suivante:Comment faire entièrement confiance à un assemblage non-signé?
System.IO.FileNotFoundException: Could not load file or assembly 'X.dll' or one of its ependencies. The specified module could not be found.
File name: 'X.dll'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm,Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at kernelLoader.Program.Main(String[] args)
Je suis absolument sûr que le fichier est à l'emplacement spécifié, et le code fonctionne bien sur ma propre machine (où elle a été développée). Il est compilé avec tous les assemblys référencés pour la plate-forme x86.
Je pense que l'erreur peut être provoquée par le fait que l'assembly n'est pas entièrement sécurisé.
Je ne peux pas chanter fort l'ensemble, car il fait référence à plusieurs assemblées, qui ne sont pas chantées, et auxquelles je n'ai pas le code ni les droits de modification.
Je soupçonne qu'il y a un bon moyen de faire confiance à un assemblage sur la machine où je l'utilise.
Comment est-ce que je marque un assembly comme étant fiable afin qu'il puisse être chargé et exécuté?
Vérifiez s'il existe un troisième assembly qui manque sur lequel 'X.dll' dépend. Votre application-> X.dll-> manquant. – cloggins
Je l'ai fait avec un réflecteur. Toutes les assemblées semblent être présentes. En outre, dans l'exception, X.dll est marqué comme manquant (Nom de fichier: 'X.dll') –
Copiez à nouveau le fichier, il peut avoir été rompu lors de la copie. –