【发布时间】:2013-06-29 00:29:16
【问题描述】:
当项目设置(VS 中的项目>属性>设置选项卡)用于存储用户或应用程序设置时,它们存储在assembly.dll.config 或assembly.exe.config 文件中,并且每次构建程序集时也会嵌入到程序集中。
部署后,用户设置存储在 user.config 文件中(至少对于单击一次部署是如此,我不确定 msi 部署或标准设置应用程序如何处理)以及每当用户更改设置这是在运行时存储和检索新值的位置。
现在,这一切都说得通了,但我只是尝试删除已部署应用程序的 app.exe.config 文件,然后该应用程序将在启动时崩溃,并且在恢复 app.exe.config 文件之前无法运行。
如果是这种情况,并且当配置文件丢失或修改时,应用程序无法使用嵌入的设置,那么首先嵌入设置的意义何在?这些嵌入设置是否会出现在任何情况下?有用吗?
【问题讨论】:
-
这篇文章(以及它提供的链接)可以帮助你理解stackoverflow.com/questions/17272956/…
-
设置值没有嵌入到程序集中,只有它们的类型安全属性。显然,我们看不出为什么设置的默认值会导致您的代码崩溃。
-
对不起,汉斯,但你错了,我使用反射工具查看程序集并且值在那里......我明天会仔细检查......
-
只是为了确认默认设置值确实已编译到程序集中,它看起来像这样
[DefaultSettingValue("1")]in reflector...
标签: .net