2016-03-08 50 views
2

我有一个WinForm项目,其中包含一个窗体和一个应用程序设置文件。当窗体加载,它从应用程序设置和读取如果程序成功运行(即文件写入到目标)的应用程序设置保存为下运行。当程序复制到其他地方时,出现应用程序设置后

我注意到一个奇怪的行为,因为我建我的解决方案:

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

+0

我曾经有这个问题与我的Windows服务。 VS似乎以某种方式缓存旧版本。帮助我的是完全创建一个新项目。 – coderblogger

+0

@avantvous我明白了!新项目的行为与Visual Studio的行为方式有什么不同? – Disasterkid

+0

没有保证,但它每次都适合我。试一试,但仍旧保留旧的副本以防万一。 – coderblogger

回答

1

当你在一个正常的方式使用Settings.Settings,考虑到这些因素将帮助您有关于用户设置一个更好的理解:

  • 当您保存使用用户设置Properties.Default.Settings.Save()当前值设置存储在​​在一个文件夹中,您的应用程序的名称位于独立部署的子文件夹中。

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

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

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

相关问题