我在同一个解决方案中有2个项目{A,B}, 我想从项目B访问项目A中的app.config。 下面的代码在项目B中的类中运行.AssistantClass在项目A中,我试图访问bin路径,并获取Execonfigs,但它给了我一个错误的路径,它在项目B中而不是A app.config是。有什么想法吗?
string path = Assembly.GetAssembly(typeof(AssistantClass)).Location;
var localV = System.IO.Path.GetDirectoryName(path);
var locs = ConfigurationManager.OpenExeConfiguration(localV);
答案 0 :(得分:1)
当你试图获取AssistantClass的路径时,它会提供项目B的bin文件夹的路径,因为它被引用到它并且是从B运行的程序集的一部分。你必须使用相对路径( .. \ .. \ ProjectA \ App.config)访问该配置文件。但这也不是一个空闲的解决方案,因为在部署此程序集时,可能无法按原样创建解决方案结构。您需要确保在编译时,每次都将所需的配置文件输出到同一个相关文件夹。