Impossible de charger le fichier ou l'assembly
Je suis en train de travailler sur un système à utiliser une SqlServerCe avec NHibernate. À partir de mon programme de pilote, si j'ajoute le Système.Les données.SqlServerCe assemblée comme une référence, je peux créer et exécuter des requêtes sur une base de données de l'amende juste. Lors de l'utilisation de NHibernate, si, j'obtiens l'exception suivante:
Une exception de première chance de type 'System.IO.FileNotFoundException' s'est produite dans mscorlib.dll
Informations supplémentaires: impossible de charger le fichier ou l'assembly 'Système.Les données.SqlServerCe' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.
J'ai retracé l'exception d'un appel à l'Assemblée.Load("Le Système De.Les données.SqlServerCe"), qui semble comme il devrait fonctionner. Le Système.Les données.SqlServerCe assemblée est dans le GAC (j'ai aussi essayé de l'ajouter comme une référence locale avec CopyLocal=true, en vain), et je peux l'utiliser à ses membres, alors pourquoi ne puis-je pas explicitement le charger? Quand j'ouvre l'assemblée à Réflecteur, il a du mal à charger le Système.Les Transactions de référence (j'ai aussi essayé l'ajout d'une référence locale, de nouveau, en vain), de sorte que le chargement de cette assemblée pourrait être le problème, plutôt que le Système.Les données.SqlServerCe assemblée.
Est-ce un problème commun? Système de configuration incorrecte, peut-être?
source d'informationauteur Dathan
Vous devez vous connecter pour publier un commentaire.
Apparemment, ce problème peut être résolu par l'ajout d'un <qualifyAssembly> élément de l'application.fichier de configuration. L'ajout de ce qui suit a mon application fonctionne en douceur:
Merci!
C'est plus probablement liée à certaines system (mis)de configuration.
Cependant, de par leur conception SQL Server CE est juste une seule DLL, qui peuvent être livrés avec votre produit.
Cela signifie que vous pouvez simplement mettre en
Copy local
àTrue
dans la référence à des propriétés deSystem.Data.SqlServerCe
, et vous avez terminé.J'ai eu un problème similaire. L'erreur que j'ai fais, c'est d'essayer d'exécuter l' .exe présent dans le ../obj/x86/Libération, alors que je suis censé exécuter l' .exe présent dans ../bin/Release. (Je suis débutant absolu à C#).
(J'ai aussi remarqué que dans cette ../bin/Release répertoire , le référencés .dll fichier est copié localement.)