【问题标题】:Why can't I use my dll that is referenced config file为什么我不能使用引用配置文件的 dll
【发布时间】:2012-02-23 14:55:39
【问题描述】:

我想问这个问题,在 dll 代码中我无法引用 dll.config 文件并且它只能编译成 exe 并复制到解决方案的任何其他项目,这太疯狂了。

你有没有想过,当你创建一个 dll 文件 (DataAccess.dll) 时,你想将它用于具有不同 sql 连接字符串的不同应用程序,但是当你构建解决方案时,它会创建一个 DataAccess.dll.config 文件,但是永远不要将它复制到任何其他属于 Winforms 或 Windows 服务的解决方案中。它只是停留在那里。

如果您尝试复制配置文件并更改值,您只会得到当时最初编译的内容,即使您认为在 dll 中使用智能感知访问配置设置,这些值在编译后将被忽略。如果您在记事本中打开 dll,您会看到您的设置已编译到 dll 本身中。

令我惊讶的是,我必须手动将配置文件中的值复制到 exe 的配置文件中才能访问面向对象的智能感知管理器中的配置设置,除非我必须通过路径使用硬编码的打开配置文件和搜索抛出的元素

什么是交易?对我来说,没有什么接缝会是一种更简单的做事方式,更不用说现实和设计

【问题讨论】:

  • 这就是 .NET 团队决定做它的配置系统的方式 - c'est la vie - 克服它,继续你的生活.....

标签: c# winforms class app-config


【解决方案1】:

dll 在 .NET 中没有关联的配置文件。

为什么?因为dll 不是独立的 - 它在可执行文件的上下文中运行。

将读取的配置是与可执行文件关联的配置。

您需要更改.exe.config 文件才能更新配置值。

【讨论】:

  • 为什么微软不能把设置复制到配置文件而不是我复制和粘贴文件
  • @user1179388 - 你应该问微软,而不是 SO。这是他们决定这样做的方式。
  • 我没有 MSDN 也没有机会,Oded 你真的认为我的观点是有效的,应该提出来吗?
  • @user1179388 - 我认为改变为时已晚。而且我不同意您的观点 - 由于 DLL 仅在 EXE 的上下文中运行,因此配置将绑定到 EXE 是有道理的。对于 .NET 平台,您始终可以在 Microsoft Connect 上提出问题。
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2022-01-26
  • 2020-06-18
  • 2022-01-04
  • 2011-05-12
相关资源
最近更新 更多