2017-04-09 2 views
0

J'ai 2 projets {A, B} dans la même solution, Je voudrais accéder à l'application.config qui est dans le projet A, à partir de projet B. Le code suivant est exécuté dans une classe qui est dans le projet B. AssistantClass est dans le projet A, j'essaie d'accéder au chemin bin, et obtenir les Execonfigs, mais il me donne un mauvais chemin qui est dans le projet B pas A où est app.config. Des idées ?Comment puis-je obtenir l'App.Config d'un projet différent dans la même solution

string path = Assembly.GetAssembly(typeof(AssistantClass)).Location; 
var localV = System.IO.Path.GetDirectoryName(path); 
var locs = ConfigurationManager.OpenExeConfiguration(localV); 

Répondre

1

Lorsque vous essayez d'obtenir le chemin de AssistantClass, il est prévu qu'il donnera chemin de projet dans le dossier bin de B, comme il est fait référence dans et fait partie de l'assemblage en cours d'exécution de B. Vous devez utilisez des chemins relatifs (.. \ .. \ ProjectA \ App.config) pour accéder à ce fichier de configuration. Mais il ne s'agit pas non plus d'une solution inactive, car lorsque vous déployez cet assembly, la structure de la solution peut ne pas être créée telle quelle. Vous devez vous assurer que lors de la compilation, les fichiers de configuration nécessaires sont sortis dans le même dossier relatif à chaque fois.