当程序复制到别处时,应用程序设置在清理后出现

Application settings appear after clean when program copied elsewhere

我有一个 WinForm 项目,其中包含一个表单和一个应用程序设置文件。加载表单时,它会从应用程序设置中读取,如果程序成功 运行s(即文件已写入目标),应用程序设置将在接下来的 运行s 中保存。

我在构建解决方案时注意到一个奇怪的行为:

当我清理并重建我的解决方案并在 bin/Release 文件夹中测试我的程序时,一切看起来都很好,应用程序设置也很清楚。但是当我将相同的文件复制到另一个目的地并从那里 运行 程序时(即使 .exe.config 文件也被新的干净版本替换)似乎复制版本仍然记得我的应用程序设置.这可能是什么原因造成的?

当您以正常方式使用 Settings.Settings 时,考虑这些事实将有助于您更好地了解用户设置:

  • 当您使用 Properties.Default.Settings.Save() 保存设置时,用户设置的当前值存储在 %userprofile%\appdata\local 中的一个文件夹中,该文件夹中的应用程序名称位于一个子文件夹中,该子文件夹对于部署。

  • 每个部署都有一个唯一的路径,因此当您在以前使用的路径中复制您的应用程序时,它假定为对您以前的部署的更新,并且您以前的用户设置将被记住并与新的合并添加设置。

  • 如果您将应用程序复制到一个全新的路径中,它将假定为一个新的部署并且您之前的用户设置将不会被记住。

  • 只有默认值存储在应用程序 .exe 旁边的 .config 文件中,因此删除它们不会影响记住用户保存的值。