为什么 与 app.config 中的 不同

本文关键字:clear 中的 不同 config app 为什么 | 更新日期: 2024-04-23 15:19:23

有人可以给我为什么<clear></clear>在app.config与<clear />中无效的技术原因

吗?

它通常像这样使用:

<connectionStrings>
 <clear/>
 <add etc..... />
</connectionStrings>

问题是我正在使用安装程序产品 (InstallShield(,并对 app.config 文件进行 xml 转换,并且它正在将<clear />更改为<clear></clear>

这会破坏应用程序(服务甚至无法启动(

目前,我只是在寻找技术解释,但是如果您有任何解决方法,那也很好。

为什么 <clear></clear> 与 app.config 中的 <clear /> 不同

似乎使用

<clear></clear> 会破坏 connectionString 部分的解析(如果在那里使用,可能还会中断其他部分(。请参阅Hans Passant的评论以获取可能的解释。

如果存在<clear></clear>ConfigurationManager.ConnectionStrings为空。因此,服务崩溃的原因可能是,您不检查此集合是否包含任何元素或尝试通过ConfigurationManager.ConnectionStrings["nameoftheconnection"]访问它们,如果没有具有该键的元素,则会引发异常。

可能的解决方法(我管理的解决方法既笨拙又笨拙(

  1. 您删除<clear /> 。这可能会导致某些引用的程序集创建一些额外的连接字符串。但是,由于你自己的连接字符串应位于此集合的末尾,因此您可能能够删除不需要的条目。

  2. 将自定义任务添加到安装例程中,该任务将在后续步骤之一中处理 app.config 文件,并将<clear></clear>替换为<clear />