【问题标题】:Exit gracefully if exe.config is missing如果缺少 exe.config,则正常退出
【发布时间】:2014-01-18 04:48:27
【问题描述】:

我有一个部署到许多生产站点的程序,每个站点都有自己的配置文件,应该从配置文件夹中复制。

我在.exe附近发布不带exe.config的程序。

我可以添加一些带有<isDefault>True</isDefault> 标签的默认配置文件并检查它是否存在,但不确定它是否是正确的解决方案,因为这不会捕获app.config 不存在的情况。

如果文件不存在,我应该如何通知用户他应该复制正确的exe.config

【问题讨论】:

  • 不确定您的问题是什么...检查具有您需要的名称的文件是否存在于您期望的位置(即在 exe 旁边)并显示您想要的任何消息帖子中描述。现在是什么部分导致了您的问题?
  • 我正在寻找一种内置方法来检查设置是否存在,因此问题是,如果找不到优雅的方法,我将使用File.Exists
  • 为什么不检查您真正感兴趣的设置,而不是说“设置 XXX 丢失。未在 .config 文件中配置或 .config 文件丢失”?

标签: c# .net app-config


【解决方案1】:

我建议您创建一些致命的错误处理。有几种情况会导致应用程序意外关闭。所有这些特殊情况,都应该以统一的方式处理异常。这取决于你,你应该以某种方式记录它。这是肯定的。

在您的情况下,如果丢失的配置文件至关重要,您可以抛出异常并关闭应用程序 - 将此视为致命错误。 (根据标题,是这样的。)

也许您还可以为这些关键消息显示一个对话框。

这取决于你。如果您想直接通知​​用户,您应该使用一些图形方法,而不仅仅是日志文件。

如果您的应用程序应该在没有配置文件的情况下启动默认配置是一个好主意。如果你想要一个非常灵活的解决方案,你应该把它放在你提到的配置文件中。这可能是一个很好的方法。

【讨论】:

  • 不错的建议,但不清楚它与问题的关系。缺少配置文件的预期情况不能真正被视为“致命错误”,而且我绝对没有看到问题中提到任何异常处理。
猜你喜欢
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 2021-01-18
  • 2014-05-29
  • 2014-01-08
相关资源
最近更新 更多