2014-04-01 30 views
11

Mam dwa projekty w ramach mojego rozwiązania, dla tego przykładu będę je nazywać projektem A i B.Dostęp do innych właściwości app.config projektów?

Opis projektu B A. Czy projekt B może uzyskać dostęp do właściwości app.config projektu A?

życzę, aby uzyskać dostęp ciąg klucza aplikacji w app.config A.

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

Odpowiedz

13

nie jest to ogólnie dobry pomysł, jak wprowadzić twarde współzależności między projektami. Jeśli więc można skopiować i wkleić wartość konfiguracyjną, spowoduje to, że projekty staną się samodzielne (jednak wprowadza to duplikację wartości konfiguracyjnej).

Można również zautomatyzować to, aby podczas budowania projektu zależność konfiguracji była automatycznie rozwiązywana.

Powiedziawszy to, są inne opcje iw każdym przypadku możesz chcieć użyć czegoś innego. Twoje inne opcje: transformacja konfiguracja

+0

dzięki tej wyczerpującą odpowiedź! – Adrian

-5

Nie można uzyskać dostępu do właściwości w Projekcie A z Projektu B, nie mając tej samej wartości w pliku konfiguracyjnym Projektu A.

2
 var path = @"C:\Users\Stephen\source\repos\SensurityConfigurationTool\Configuration.UI\App.config"; 
     string directory = Path.GetDirectoryName(path); 
     var pathRoot = Path.GetPathRoot(directory); 
     string file = Path.GetFileName(path); 


     ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap 
     { 
      ExeConfigFilename = Path.Combine(Path.GetFullPath(directory + "\\" + file)) 
     }; 

     System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

Zasadniczo uzyskać względną ścieżkę, a następnie przekonwertować to do absolutnego ścieżce