我有一个WinForm
项目,其中包含一个表单和一个应用程序设置文件。加载表单时,它会从应用程序设置中读取,如果程序成功运行(即文件写入目标),则会保存应用程序设置以供下次运行。
我在构建解决方案时注意到一种奇怪的行为:
当我清理并重建我的解决方案并在bin/Release
文件夹中测试我的程序时,一切看起来都很好,应用程序设置也很清晰。但是当我将相同的文件复制到另一个目的地并从那里运行程序时(即使.exe.config
文件也被新的干净版本替换),似乎复制版本仍然记得我的应用程序设置。什么可能导致这种情况?
答案 0 :(得分:1)
当您以正常方式使用Settings.Settings
时,考虑这些事实将有助于您更好地了解用户设置:
使用Properties.Default.Settings.Save()
保存设置时,用户设置的当前值存储在%userprofile%\appdata\local
文件夹中,文件夹中的应用程序名称位于子文件夹中,该文件夹对于部署而言是唯一的。
每个部署都有一个唯一的路径,因此当您在先前使用的路径中复制应用程序时,它会假定为先前部署的更新,并且将记住您之前的用户设置并将其与新添加的设置合并。 / p>
如果您以全新的路径复制应用程序,则会将其视为新部署,并且不会记住以前的用户设置。
只有默认值存储在应用程序.config
旁边的.exe
文件中,因此删除它们对记住用户保存的值没有影响。