J'ai une DLL qui est référencée par l'application principale. Lorsque j'appelle méthode à partir de DLL, j'ai besoin de lire les configurations à partir du fichier app.config spécifique à la DLL. Toutefois, lorsque je mappe Configuration Manager au fichier de configuration requis, je remarque que GetExecutingAssembly() renvoie l'assembly de l'application principale au lieu de la DLL référencée. Existe-t-il un moyen d'obtenir exactement l'emplacement de l'assembly DLL lorsque DLL est utilisée? Bien sûr, je voudrais mettre à jour ma DLL afin qu'elle renvoie toujours sa propre assebmlylocation lorsqu'elle est exécutée.Obtenir l'emplacement d'assemblage de la méthode référencée
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = Assembly.GetExecutingAssembly().Location);
Configuration libConfig = ConfigurationManager.OpenMappedExeConfiguration(
map, ConfigurationUserLevel.None);
ont une méthode dans la dll qui retourne 'MethodBase.GetCurrentMethod(). DeclaringType.Assembly'? – stuartd
@stuartd il est peu probable d'aider - le code show in dans le post fait à peu près la même chose et fonctionnerait bien * s'il est exécuté par la méthode dans la DLL * (identique à votre exemple). On ne sait pas où OP doit exécuter ce code - donc quiconque répondra besoin de fournir plusieurs options (y compris les cas GAC-installé et shadow-copié) –
@AlexeiLevenkov bon point, merci – stuartd