我有一个我构建的 .NET 3.5 类库,它读取一个 App.config 文件以获得它需要的值。当我在 Visual Studio 中测试它时,它可以很好地提取配置值。为了测试它,我只是将项目更改为控制台应用程序并执行方法调用。

我需要从许多其他 .NET 程序中调用这个类库,并且我希望类库是自给自足的(我应该能够从任何其他程序中调用它,它应该使用自己的配置文件,不知道关于任何调用配置文件等)。

我可以添加对 dll 的引用(因为我仍在开发中,所以我使用的是 VS 2008,还没有向 GAC 中扔任何东西)但是类库正在读取的 App.config 来自调用程序的 App.config,不是类库的 App.config。

类库dll在同一个目录中有它的配置文件,所以它应该能够找到它,并且调用应用程序的名称不同。我在 App.config 中使用标准键值对(例如配置文件 myClassLibrary.dll.config 的名称)并使用以下代码行获取值:

String myVal = ConfigurationSettings.AppSettings["myConfigSetting"];

有谁知道如何解决这一问题?

最佳答案

C# 中的应用程序域只能有一个程序集级别的 app.config 文件。 See here on MSDN 。可执行文件将始终启动 AppDomain,并默认查找名称为 EXECUTABLE_NAME.config 的配置文件。例如,SampleApp01.exe 将查找 SampleApp01.exe.config 作为其配置文件。

关于c# - 错误的 App.config 被加载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/471042/

10-14 14:49
查看更多