我有一个布尔用户范围设置。我通过一个名为Settings的引用类库来访问它。该类库有一个带有属性的模块:
Module AppSettings
Public Property MyBooleanSetting() As Boolean
Get
Return My.Settings.MyBooleanSetting
End Get
Set(ByVal value As Boolean)
My.Settings.MyBooleanSetting = value
My.Settings.Save()
End Set
End Property
End Module
我在Settings类库的Property页面中定义了设置。
当其他代码操作设置时,它将使用如下代码:
Settings.MyBooleanSetting=True
代码运行时,这有效。但是在重新启动应用程序后,新值不会保留。 我哪里错了?
答案 0 :(得分:2)
在查看Using My.Settings in Visual Basic 2005 MSDN文章和这些MSDN Forum Threads之后,我会说您需要验证正在使用的路径。
用户范围设置特定于每个用户。它们可以在运行时由应用程序代码安全地读取和设置。这些设置存储在user.config文件中。为了在技术上准确,每个应用程序每个用户有两个user.configs - 一个用于非漫游,一个用于漫游。虽然Visual Basic 2005文档声明user.config文件将根据用户的名称(joe.config)命名,但情况并非如此。 user.config文件在\ [Local Settings] Application Data \\ \中创建。其中:
•是用户数据目录,非漫游(上面的本地设置)或漫游 •是用户名 •是CompanyNameAttribute值(如果可用)。否则,请忽略此元素 •是AppDomain.CurrentDomain.FriendlyName。这通常默认为.exe名称 •是基于哈希可用证据的URL,StrongName或Path •是从CurrentDomain收集的证据的SHA1哈希,按以下优先顺序排列:
a.StrongName
b.URL如果这些都不可用,请使用.exe路径。
是AssemblyInfo的AssemblyVersionAttribute设置。
答案 1 :(得分:2)
拯救你的呼吸。代码确实起作用了。我在我的应用程序的Viewmodel中使用了另一个属性来缓存Setting.MyBooleanSetting,但我忘了在应用程序启动时阅读它...