在类库中加载配置文件

时间:2015-01-12 09:15:45

标签: vb.net vb6

我有一个类库,由VB6客户端和VB.NET客户端调用。如果VB.NET客户端调用类库,则Log4Net(http://logging.apache.org/log4net/)的app.config中有设置。如果VB6代码调用了库,那么目前没有日志记录。

我的问题是关于app.config。如果我在VB.NET客户端(Windows窗体)和类库中有app.config,那么我认为:

If client is Windows Forms then
  Use VB.NET App.config
ElseIf client is VB6 then
  Use Class Library app.config

这是正确的吗?我已经对MSDN进行过一些研究,但是我找不到任何明确的问题,因此也就是问题。

3 个答案:

答案 0 :(得分:0)

我认为类库不直接支持app.config文件 - 它们只使用构成进程的程序集的app.config / web.config - 所以控制台应用程序,服务,WinForms应用程序等等。

答案 1 :(得分:0)

app.config文件仅对CLR可执行程序集有用,并且在应用程序运行时会自动加载它们。

如果您的可执行文件不是托管应用程序(我假设使用VB6开发的应用程序),则app.config无用,因为CLR无法加载到该进程中(因为它不是托管应用程序)。

如果您的程序集是托管但不可执行(类库),则它是无用的(在执行方面无用,否则它可用于将内容复制到可执行项目的app.config)。

答案 2 :(得分:0)

类库使用其主机的配置文件,因此即使类库项目有配置文件,它也不会在运行时引用。相反,它将查找执行DLL的主机的配置文件。

为了避免在构建之后重新编译代码以更新变量值(如开发DB和生产数据库等),您可以在程序中使用设置或硬编码路径来查找“配置”。文件。我使用带有键值对的XML文件。然后我加载并将其读取到我可以在我的应用程序中使用的列表或字典,如“配置”和#39;文件。

现在,当我部署时,我只需更改“配置”即可。将文件放入我的dll中的硬编码位置,无需重建类库。