如何在应用程序目录中创建Application.exe.config

时间:2011-03-17 15:27:18

标签: c# .net-3.5 configuration-files

所以我最近更新了我的应用程序以支持新功能。在过去,如果用户删除了配置文件,这不是什么大问题。这个新功能要求它存在,其中一个要求是,该文件存在于应用程序的安装目录中。

我注意到文件被删除时(取决于我还没想到的变量)我得到一个.NET通知,说明配置文件丢失或损坏。目前我的程序崩溃了(我仍然需要弄清楚如何复制这种行为)这就是这个问题的原因。

我熟悉ConfigurationManager。加载默认值后,我无法写入文件。由于某种原因强制保存似乎不会重新创建文件,至少不在安装目录中,这是一个要求。

我正在寻找如何以优雅的方式处理这个角落案例的指导。我会发布代码,老实说它只是所有失败的尝试,当我尝试生成文件时,内容不是我正在寻找的设置。

我愿意发布任何可以提供帮助的内容。

3 个答案:

答案 0 :(得分:2)

停止使用内置配置支持,只使用标准XML类对一个名为something.exe.config的文件进行写入/读取,如果删除,只需从可执行文件中硬编码的值重新创建它

配置文件支持应该会让事情变得更容易,如果你需要做的事情让事情变得困难,不要使用它。

答案 1 :(得分:0)

这样的东西

var wcfm = new WebConfigurationFileMap();
配置newConfig = WebConfigurationManager.OpenMappedWebConfiguration(wcfm,“/”);
newConfig.Save();

不起作用?

答案 2 :(得分:0)

你不这样做。在正常情况下,程序无法写入其安装目录 - 这是一个标准的Windows安全问题,以及应用程序应用程序数据应该驻留在外部(从exe点)driectories的原因。

如果管理员删除配置文件,请崩溃,请求重新安装。没有什么是可靠的,因为你不能假设你可以在运行时写入文件夹。后面跟着事件日志条目的消息是最好的方法。用户不应该删除部分应用程序。