代码之家  ›  专栏  ›  技术社区  ›  MickeyfAgain_BeforeExitOfSO

C#visual studio-Properties.Settings.Default.someValuer或其他人让我感到困惑

  •  0
  • MickeyfAgain_BeforeExitOfSO  · 技术社区  · 16 年前

    C#visual studio项目:Properties.Settings.Default.someValuer或其他项目让我感到困惑。

    我有一个相对简单的项目。它在会话之间保存一组最后输入的值,并在下次调用时恢复这些值。他工作得很好。我更改了一个控件,使允许的最小值不再是1,而是现在的100。上次使用的值是3。在启动时,它现在抱怨3不是有效值。

    嗯,嗯,当然,但是听听其他的。

    我已将VS中的设置编辑为默认值500。我已将exename.config文件编辑为包含500而不是3。我已检查了所有可能的配置文件(vshost.exe.config、bin/debug、bin/release、obj/debug、obj/release中的文件)。它们都包含value=500。我已经多次重新构建。我只将exe和配置文件复制到一台单独的PC上,因此开发环境不是一个因素。我仍然收到这个错误消息。

    为了让我更加困惑,在dev PC上,如果我(直接,而不是在调试器中)在/obj/debug或/obj/release中运行exe,我不会得到错误。如果我在/bin下运行这些,我确实会得到错误。配置文件具有相同的内容。如果我复制exe&从/obj(在dev-PC上没有给出错误的那个)配置到另一台PC,我确实得到了错误。

    我以为exename.config就是我要处理的所有事情,但看起来VS在背后做了一些事情,至少是我在文档中找不到的事情。我想这是件小事。如果有人能解释我错过了什么,我会非常感激的。我真正想做的就是可靠地将一些用户设置从程序的一次运行保存到下一次运行。让这个应用“忘记”那个过时的值。

    短暂性脑缺血发作

    2 回复  |  直到 16 年前
        1
  •  1
  •   Joel Coehoorn    16 年前

    在解决方案中查找*.settings文件。这就是构建项目时使用的值将被存储的位置。

        2
  •  0
  •   MickeyfAgain_BeforeExitOfSO    16 年前

    这并不是全部答案,但它确实解释了神秘值的存储位置:

    …在这里的另一个帖子里。我现在单独测试从设置中读取的值,而不是信任它,并在需要时强制它们进入有效范围。

    确实是一个丑陋的、隐藏得很好的违约。自从CPM以来,我没有在我的可执行文件中嵌入数据值。天哪。