17

值是My.Settings保存在程序本身中还是存储在注册表中?因此,例如,如果我My.Settings用程序设置了一个值,然后我将程序本身复制到另一台 PC - 该My.Settings值是否仍然设置?

4

4 回答 4

33

这取决于您选择的范围。有两个范围设置 - 应用程序和用户范围。

来自 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>.
于 2012-01-01T04:43:42.997 回答
10
Dim config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
MessageBox.Show(config.FilePath)
于 2015-12-02T06:17:24.097 回答
4

如果您使用 clickonce 安装了应用程序,那么您的 MySettings 将存储在配置文件中,该文件存储在 `C:\Users\\AppData\Local\Apps\2.0\Data........

使用名为 yourapp.exe.config 的文件在这些路径中搜索

问题是 MySettings 将存储在该应用程序的 app.config 文件中,并在发布 app.config 文件后保存为 applicationname.exe.config 文件

于 2012-01-01T05:26:41.277 回答
3

如果它们是用户设置,它们肯定不会存储在程序中 - 这不是很容易实现,而且毫无意义。相反,它们存储在 %AppData% 文件夹中的配置文件中。所以不,如果你复制了程序,用户设置就不会随之而来,只有应用程序设置。

于 2012-01-01T04:44:45.550 回答