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