为什么我的应用程序不会读取我的DataAccessLayer.dll.config文件?

时间:2015-06-08 22:12:15

标签: c# .net dll

我正在尝试使用我正在处理的C#.NET项目的应用程序设置。但我似乎无法让它返回除默认值之外的任何东西。通过项目属性,我添加了一个设置DBConnectionString,并将其值设置为我想要使用的连接字符串。其范围设置为“应用程序”。

这样做会创建许多文件,包括Settings.settings,Settings.Designer.CS和app.config。然后,Settings类具有自定义的类型安全属性,可用于设置和检索每个设置。 app.config文件是一个存储实际设置值的XML文件。

当我构建项目时,它看起来像app.config文件作为DataAccessLayer.dll.config复制到目标目录。我的程序运行正常,可以使用默认的连接字符串。

接下来,我尝试编辑DataAccessLayer.dll.config文件以更改连接字符串。我再次运行我的程序,但它继续使用默认值。

此项目是一个用于Web项目的类库,有时连接字符串可以更改。

1 个答案:

答案 0 :(得分:1)

Builds将输出以dll命名的配置文件,但这些实际上并不是应用程序启动时读取的内容。您可以将设置放在网络应用配置中(例如Equivalent to 'app.config' for a library (DLL)),这些是您在这种情况下实际运行的设置。

如果你想让你的图书馆便携,你必须要么; 1)制作你自己的配置类/文件2)手动读取你的dll的app配置(例如我上面链接的答案)或3)将你的设置放在导入项目app.config

在这种情况下,我只是将您的连接字符串数据放在Web应用程序配置中。如果DataAccessLayer.dll仅供内部使用,这是我经验中最常见的模式,并没有多少缺点。最终,我会在构建过程中设置这些值,或者使用Salt或Chef等部署实用程序。如果您在部署时或部署后手动编辑Web应用程序配置,那么您做错了。