我的解决方案中有两个项目,本例中我将其称为项目A和B.
项目B引用A.项目B可以访问项目A的app.config属性吗?
我想访问A。的app.config中的app键字符串。
string tfsUri = ConfigurationManager.AppSettings["TfsUri"];
答案 0 :(得分:18)
这通常不是一个好主意,因为你在项目之间引入了硬依赖关系。因此,如果您可以复制粘贴配置值,那将使您的项目自包含(但是,这会引入配置值的重复)。
您也可以自动执行此操作,以便在构建项目时自动解析配置依赖项。
说过这个,还有其他选择,在每种情况下你可能更喜欢使用别的东西。您的其他选择是:
答案 1 :(得分:5)
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);
您基本上获得相对路径,然后将其转换为绝对路径