Accéder à d’autres projets app.config, propriétés?

J’ai deux projets dans ma solution, pour cet exemple je les appellerai les projets A et B.

Références du projet B A. Le projet B peut-il accéder aux propriétés app.config du projet A?

Je souhaite accéder à une chaîne de clé d’application dans le fichier app.config de A.

ssortingng tfsUri = ConfigurationManager.AppSettings["TfsUri"]; 

Ce n’est généralement pas une bonne idée, car vous introduisez des dépendances dures entre les projets. Donc, si vous pouvez copier-coller une valeur de configuration, vos projets seront autonomes (cependant, cela introduit une duplication de la valeur de configuration).

Vous pouvez également automatiser cette opération afin que, lors de la génération d’un projet, la dépendance de configuration soit automatiquement résolue.

Cela dit, il existe d’autres options et, dans chaque cas, vous préférerez peut-être utiliser autre chose. Vos autres options sont:

  • Utilisez la transformation de configuration, comme SlowCheetah
  • Ajouter un fichier de configuration complet d’un projet à un autre “en tant que lien”
  • Injecter la valeur de configuration à votre classe (au lieu de la lire depuis config)
  • Lisez le fichier de configuration d’un autre projet au moment de l’exécution, en utilisant des outils tels que ConfigurationManager.OpenExeConfiguration.
  • Consultez également Comment sélectionner différentes application.config pour plusieurs configurations de construction
  var path = @"C:\Users\Stephen\source\repos\SensurityConfigurationTool\Configuration.UI\App.config"; ssortingng directory = Path.GetDirectoryName(path); var pathRoot = Path.GetPathRoot(directory); ssortingng file = Path.GetFileName(path); ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(Path.GetFullPath(directory + "\\" + file)) }; System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

Vous obtenez essentiellement le chemin relatif, puis convertissez cela en un chemin absolu