当exe用作dll时,是否可以访问app.config文件?

时间:2011-12-09 21:57:10

标签: c# .net app-config appsettings

我有一个命令行应用程序,它使用通常的Properties.Settings.blabla属性从app.config文件中读取一些设置。

此应用程序也用作dll。

当我将它用作dll时,它会忽略我放在目录中的任何foo.exe.config。在使用访问配置文件的方法时,它没有像我预期的那样抛出异常,但它也没有获取配置文件。

有没有办法让一个被用作dll的exe消耗它自己的设置文件,并且在使用exe时仍然使用app.config文件?我不想改变消费者代码,我希望对exe代码的影响尽可能小。

我看过使用ConfigurationManager.OpenMappedExeConfiguration方法或OpenExeConfiguration的解决方案,是在exe代码中使用这些方法的解决方案吗?这样它总是会查找配置文件,无论它是用作dll还是exe?

1 个答案:

答案 0 :(得分:1)

如果你想这样做,你需要从该文件中专门阅读。 .NET可执行文件从它自己的app.config文件中读取。库代码总是从正在执行的应用程序的app.config文件中读取...甚至恰好已经编译成扩展名为.exe的文件的库代码。

编辑强调/澄清 当我谈到app.config时,我当然在谈论适当重命名的[program.exe.config]文件。