我建立了一个.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文件。请参见MSDN上的此处。可执行文件将始终启动AppDomain,并且默认情况下将查找名称为EXECUTABLE_NAME.config的配置文件。例如,SampleApp01.exe将寻找SampleApp01.exe.config作为其配置文件。