当程序复制到其他位置时,应用程序设置在清

时间:2016-03-08 10:06:21

标签: c# winforms visual-studio build application-settings

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

  • 如果您以全新的路径复制应用程序,则会将其视为新部署,并且不会记住以前的用户设置。

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