Impossible de charger le fichier ou l'assembly 'XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances
J'ai essayé de déboguer cette Erreur:
Système.IO.FileNotFoundException: impossible de charger le fichier ou l'assembly 'ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.
Nom de fichier: "ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
Je vois beaucoup de solutions et de les essayer tous.
Je suis à la recherche à la Fusion de la Visionneuse et j'obtiens le message suivant:
JOURNAL: Cette liaison commence en charge par défaut le contexte.
JOURNAL: l'Utilisation de fichier de configuration d'application: I:\Projects\ACE Explorer\AceV_1Explorer\AceExplorer\AceExplorer\bin\Debug\AceExplorer.exe.config
JOURNAL: l'Utilisation de fichier de configuration d'hôte:
JOURNAL: l'Utilisation de la machine fichier de configuration de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
JOURNAL: Post-politique de référence: ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
JOURNAL: GAC de Recherche a été infructueuse.
JOURNAL: la Tentative de téléchargement de la nouvelle URL de type file:///I:/Projets/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.DLL.
JOURNAL: la Tentative de téléchargement de la nouvelle URL de type file:///I:/Projets/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.DLL.
JOURNAL: la Tentative de téléchargement de la nouvelle URL de type file:///I:/Projets/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.EXE.
JOURNAL: la Tentative de téléchargement de la nouvelle URL de type file:///I:/Projets/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.EXE.
JOURNAL: Tous les sonder Url tenté et échoué.
Je vois le fichier dans le répertoire et la Cible est le framework 4.0 pour tous à l'aide de x86
Toutes les idées de découvrir ce qui est cassé
Mis à jour
Désolé pour la confusion. Dans le journal qu'il était PublicKeyToken=null. J'essayais tout.
Mise à JOUR
J'ai ajouté un peu de code dans le programme principal qui permettra de résoudre les assemblées à l'aide de la ResolveEventHandler. Il ne fonctionne pas du premier. Mais quand j'ai eu la charge de programme à l'extérieur des assemblées (LoadReferences()) dans le début du programme, il n'travail. Bizarre car le chemin était exactement la même chose quand je les charge dans le début LoadReferences() et puis quand la méthode entre une référence à une coutume assembler ce qui déclenche la CurrentDomain_AssemblyResolve. Le chemin vide résout à l'assemblypath. Comme vous pouvez le voir, dans la LoadReferences(), je suis en ajoutant EntityFramework qui va provoquer le même problème, même si je suis à l'aide de Nuget.
Dans main (), j'ai ajouté:
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
LoadReferences();
private static void LoadReferences()
{
Assembly objExecutingAssemblies;
objExecutingAssemblies = Assembly.GetExecutingAssembly();
AssemblyName[] arrReferencedAssmbNames = objExecutingAssemblies.GetReferencedAssemblies();
Assembly asm;
foreach (AssemblyName strAssmbName in arrReferencedAssmbNames)
{
if (strAssmbName.FullName.ToLower().Contains("[company].") || strAssmbName.FullName.ToLower().Contains("entityframework"))
asm = Assembly.LoadFrom(Path.Combine("", strAssmbName.FullName.Substring(0, strAssmbName.FullName.IndexOf(","))+ ".dll"));
}
//these were also posing an issue
asm = Assembly.LoadFrom(Path.Combine("", "EntityFramework.dll"));
asm = Assembly.LoadFrom(Path.Combine("", "EntityFramework.SqlServer.dll"));
}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assembliesDir = "";
try
{
string dll = (args.Name.IndexOf(",") < 0 ? args.Name + ".dll" : args.Name.Substring(0, args.Name.IndexOf(",")) + ".dll");
Assembly asm = Assembly.LoadFrom(Path.Combine(assembliesDir, dll));
return asm;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return null;
}
Aussi. Vous ne savez pas si cela fait une différence, mais c'est un clickonce avec une pleine confiance.
Également de nos postes de travail sont assez verrouillé.
Également la plate-forme x86 pour tous les projets.
RB, Bon oeil mais ce n'est pas elle. J'ai essayé de faire le montage solide nommé d'après l'affichage du message d'erreur sur l'affichage du journal.
Eh bien, dans ce cas l'erreur est claire - la Fusion ne peut pas trouver le fichier DLL dans un endroit qu'elle essaie. Avez-vous essayé de copier et de coller les lieux, disons, dans l'Explorateur Windows pour vous assurer qu'il est certainement l'endroit où vous pensez que c'est?
Le fichier est là. J'ai aussi essayé un outil permettant de déterminer si c'est 32 ou 64 bits
Fichier est où? Qui des 4 emplacements est-il?
OriginalL'auteur H20rider | 2016-05-06
Vous devez vous connecter pour publier un commentaire.
Cette question nécessite psychique de débogage. La Fusion est demandé de résoudre un chemin sur la
I:
lecteur. C'est souvent une lettre de lecteur mappé à un partage sur un serveur de fichiers. Et souvent pénible comme ça. Compte tenu de la focalisation excessive sur la sécurité, ACE est susceptible d'être l'acronyme de Entrée De Contrôle D'Accès. Qui fait, il est probable que le programme utilise l'emprunt d'identité pour "explorer" les droits d'accès. Qui fait, il est probable que la Fusion peut pas comprendre ce que leI:
lecteur peut se référer, les mappages de lecteur sont un par utilisateur réglage.Œuvres d'accord au début du programme, car il s'exécute toujours avec l'utilisateur par défaut jeton. Et les œuvres d'accord une fois que le programme est déployé puisqu'il a maintenant un emplacement stable, qui ne dépend pas de lettre de lecteur de la cartographie.
Pas sûr de ce à recommander, je suis un des membres fondateurs de la Convention de Genève sur les Programmeur Droits de l'homme. Ce qui exige que les programmeurs peuvent créer et tester des programmes sur leur disque dur et installer le genre d'outils de débogage ils ont besoin de savoir pourquoi leur programme ne fonctionne pas. C'est un problème que votre personnel doit résoudre. Si cela vous donne le contrôle sur votre machine de dev, alors vous êtes en avance. Un résultat probable étant donné le genre de résultats que Google retourne pour un ".net de projet de débogage sur le lecteur mappé de la requête".
Je n'ai pas de recommandations que vous le souhaitez. J'ai recommandé de reprendre le contrôle de votre machine de dev avec toutes vos forces. Si vos pouvoirs sont faibles alors que je suppose que #if DEBUG peut vous aider. Si un gestionnaire d'événements AssemblyResolve qui utilise un chemin d'accès UNC. Des trucs comme cela peut être un énorme à long terme de temps de vidange, il est vraiment plutôt préférable de parler à votre superviseur, au lieu de moi. Son travail consiste à garder son personnel productif, bonne chance avec elle.
OriginalL'auteur