值是My.Settings
保存在程序本身中还是存储在注册表中?因此,例如,如果我My.Settings
用程序设置了一个值,然后我将程序本身复制到另一台 PC - 该My.Settings
值是否仍然设置?
4 回答
这取决于您选择的范围。有两个范围设置 - 应用程序和用户范围。
来自 MSDN 文章:
应用程序范围的设置是只读的,并在该应用程序的所有用户之间共享。这些设置存储在该部分的 app.config 文件中。在运行时,app.config 文件将位于您的 bin 文件夹中,并以您的应用程序名称 (MySettingsDemo.exe.config) 命名。
用户范围设置特定于每个用户。应用程序代码可以在运行时安全地读取和设置它们。这些设置存储在 user.config 文件中。从技术上讲,每个应用程序的每个用户都有两个 user.config——一个用于非漫游,一个用于漫游。尽管 Visual Basic 2005 文档声明 user.config 文件将根据用户名 (joe.config) 命名,但情况并非如此。user.config 文件在以下位置创建:
<c:\Documents and Settings>\<username>\[LocalSettings\]ApplicationData\<companyname>\<appdomainname>_<eid>_<hash>\<verison>.
Dim config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
MessageBox.Show(config.FilePath)
如果您使用 clickonce 安装了应用程序,那么您的 MySettings 将存储在配置文件中,该文件存储在 `C:\Users\\AppData\Local\Apps\2.0\Data........
使用名为 yourapp.exe.config 的文件在这些路径中搜索
问题是 MySettings 将存储在该应用程序的 app.config 文件中,并在发布 app.config 文件后保存为 applicationname.exe.config 文件
如果它们是用户设置,它们肯定不会存储在程序中 - 这不是很容易实现,而且毫无意义。相反,它们存储在 %AppData% 文件夹中的配置文件中。所以不,如果你复制了程序,用户设置就不会随之而来,只有应用程序设置。