C# chemin d'accès de la bibliothèque de la classe
J'ai une bibliothèque de classe qui utilise des fichiers xml trouvé dans son propre répertoire.
Lors du référencement de cette bibliothèque à partir d'un autre projet, comment s'assurer de la bibliothèque est de travailler à partir de son propre répertoire?
J'ai essayé de l'Assemblée.GetExecutingAssembly().Emplacement, mais qui restent retourne le chemin d'accès du projet de démarrage.
Votre approche semble correct. Êtes-vous sûr que vous êtes (1) en appelant
(1) Oui (2) de La dll est copié dans le répertoire du projet de démarrage, mais les fichiers xml ne sont pas copiées.
Eh bien, (2) c'est la raison. La copie se fait par Visual Studio, de sorte que le application en cours d'exécution n'a aucun moyen de connaître l'emplacement d'origine de ce fichier.
GetExecutingAssembly
de l'intérieur de votre bibliothèque et (2) vous n'êtes pas à l'aide d'une "copie locale" de la bibliothèque?(1) Oui (2) de La dll est copié dans le répertoire du projet de démarrage, mais les fichiers xml ne sont pas copiées.
Eh bien, (2) c'est la raison. La copie se fait par Visual Studio, de sorte que le application en cours d'exécution n'a aucun moyen de connaître l'emplacement d'origine de ce fichier.
OriginalL'auteur djskinner | 2009-11-19
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est un vieux post, mais dans le cas de quelqu'un d'autre tombe sur elle à partir d'une recherche, la façon la plus simple que j'ai trouvé à faire c'est:
Foo
ici?Êtes-vous sérieux?
hahaha, je ne me souviens pas faire cette (stupide) commentaire; peut-être était ivre quand j'ai fait cela.
OriginalL'auteur Lance
Ce qui se passe parce que votre projet de démarrage a deux options pour le chargement de la bibliothèque
Donc, vous avez deux options ici:
Utiliser l'option 1 au lieu de cela.. mais les utilisateurs de l'application ne sera pas en mesure de modifier les XMLs. Je ne vois pas d'autres options.
Pour ajouter un autre options: Mettre les fichiers XML dans certains désigné répertoire de données et de les stocker que le chemin d'accès au répertoire dans votre application.config. Après vous, vous déployer votre projet à d'autres Pc et de l'utiliser en dehors de Visual Studio, n'est-ce pas?
OriginalL'auteur André Pena
Je ne pense pas que vous pouvez, à moins de vous lancer dans un nouveau domaine d'application, et c'est plus d'ennuis que cela vaut la peine. Il suffit de copier les fichiers dont il a besoin dans votre propre projet, et de les mettre dans l'endroit qu'il attend par rapport à votre répertoire de travail.
(Vous pourriez également demander au développeur d'origine pourquoi les chemins vers les fichiers nécessaires ne peut pas être donnée en paramètre. Ce serait le moyen normal de résoudre ce problème.)
OriginalL'auteur Mark Byers
Je suis sûr qu'il y est quelques fonctions pour obtenir la liste de chargement des assemblages à partir de la ExecutingAssembly, boucle à travers ce pour vous trouver assembler(classe lib) puis l'obtenir. Désolé pour la réponse vague.
OriginalL'auteur Simeon Pilgrim