为什么<clear> </clear>与app.config中的<clear>不一样?

时间:2016-03-30 10:46:08

标签: c#

有人可以告诉我app.config与<clear></clear>

<clear />无效的技术原因

它通常像这样使用:

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

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

这会破坏应用程序(服务甚至不会启动)

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

1 个答案:

答案 0 :(得分:1)

似乎使用<clear></clear>会破坏connectionStrings部分的解析(如果在那里使用的话,也可能会破坏其他部分)。请参阅Hans Passant的评论以获得可能的解释。

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

可能的解决方法(我管理员都非常笨拙和hacky)

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

  2. 您可以在安装例程中添加自定义任务,该例程会在后续步骤之一中处理app.config文件,并将<clear />替换为git@vger.kernel.org