我有一个命令行应用程序,它使用通常的Properties.Settings.blabla
属性从app.config文件中读取一些设置。
此应用程序也用作dll。
当我将它用作dll时,它会忽略我放在目录中的任何foo.exe.config。在使用访问配置文件的方法时,它没有像我预期的那样抛出异常,但它也没有获取配置文件。
有没有办法让一个被用作dll的exe消耗它自己的设置文件,并且在使用exe时仍然使用app.config文件?我不想改变消费者代码,我希望对exe代码的影响尽可能小。
我看过使用ConfigurationManager.OpenMappedExeConfiguration
方法或OpenExeConfiguration
的解决方案,是在exe代码中使用这些方法的解决方案吗?这样它总是会查找配置文件,无论它是用作dll还是exe?
答案 0 :(得分:1)
如果你想这样做,你需要从该文件中专门阅读。 .NET可执行文件从它自己的app.config
文件中读取。库代码总是从正在执行的应用程序的app.config
文件中读取...甚至恰好已经编译成扩展名为.exe的文件的库代码。
编辑强调/澄清
当我谈到app.config
时,我当然在谈论适当重命名的[program.exe.config]
文件。