web-dev-qa-db-ja.com

別のプロジェクトのapp.configプロパティにアクセスしますか?

私のソリューションには2つのプロジェクトがあります。この例では、プロジェクトAおよびBと呼びます。

プロジェクトBはAを参照します。プロジェクトBはプロジェクトAのapp.configプロパティにアクセスできますか?

Aのapp.config内のアプリキー文字列にアクセスしたい。

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

プロジェクト間に強い依存関係を導入するので、これは一般に良い考えではありません。したがって、設定値をコピーして貼り付けることができれば、プロジェクトは自己完結型になります(ただし、これにより設定値が重複します)。

これを自動化して、プロジェクトをビルドするときに構成の依存関係が自動的に解決されるようにすることもできます。

これを言って、他のオプションがあり、それぞれの場合に何か他のものを使用することを好むかもしれません。その他のオプションは次のとおりです。

22
oleksii
       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);

基本的に相対パスを取得し、これを絶対パスに変換します

5
user6685907