Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 关于使用VS 2010内置的应用程序设置功能的几个问题_.net_Vb.net_Visual Studio 2010_Settings - Fatal编程技术网

.net 关于使用VS 2010内置的应用程序设置功能的几个问题

.net 关于使用VS 2010内置的应用程序设置功能的几个问题,.net,vb.net,visual-studio-2010,settings,.net,Vb.net,Visual Studio 2010,Settings,关于VS项目中设置的使用,我有几个问题。首先,通过阅读网上的各种资源,我了解到有两种类型的设置。读/写的用户设置和只读的应用程序设置。我的第一个问题是,如果应用程序设置是只读的,并且在运行时无法更改,那么是什么使它们变得有用?使用应用程序范围设置和将设置硬编码到源代码中有什么区别?VS项目中的用户设置是否与计算机上的特定windows用户帐户相关联?如果我的程序安装在有用户a和用户B的计算机上,如果用户a更改了设置,当程序在用户B下运行时,会使用新的设置吗?如果不是这样,如何实现独立于用户的设置

关于VS项目中设置的使用,我有几个问题。首先,通过阅读网上的各种资源,我了解到有两种类型的设置。读/写的用户设置和只读的应用程序设置。我的第一个问题是,如果应用程序设置是只读的,并且在运行时无法更改,那么是什么使它们变得有用?使用应用程序范围设置和将设置硬编码到源代码中有什么区别?VS项目中的用户设置是否与计算机上的特定windows用户帐户相关联?如果我的程序安装在有用户a和用户B的计算机上,如果用户a更改了设置,当程序在用户B下运行时,会使用新的设置吗?如果不是这样,如何实现独立于用户的设置


感谢

应用程序设置提供了一个单一位置来存储可能在整个程序中使用的值

请考虑,如果有许多消息字符串用于将消息从程序的一部分传递到另一部分,那么在整个程序中以文本形式复制这些字符串将不是一个好主意。而是将它们存储在应用程序设置中并使用该设置。如果将来您需要更改它,您可以在一个地方更改它,并且只要您使用Intellisense并且所有内容都正确编译,就不必担心拼写错误

用户设置取决于用户。不过,我通常会将用户设置写入注册表,因为我不希望我的用户进入注册表并轻易地干扰它们

无论如何,用户设置保存在以下位置:
C:\Documents and Settings\%username%\Local Settings\Application Data\%ApplicationName%

也许应用程序设置的示例并不令人兴奋,听起来你最好在静态类中使用const string(或者资源,如果它们是给用户的消息)…但是使用和应用程序设置以及将设置存储在源代码中的全局可访问变量中有什么区别?(即,我可以有一个错误消息的应用程序设置,或者我可以有一个公共设置模块,其公共常量消息为String=“blah blah blah blah”设置存储在XML文件中,因此它们在每次运行应用程序时都会保持不变。如果不需要保持数据,可以,只需使用变量将数据存储在内存中。不过,请重新考虑使用全局:)@vanattab。如果它们不在源代码中,则无法更改。想象一下数据库引擎、安装程序或高级用户的连接字符串可能需要更改,以避免硬编码。@Adriano我明白了,事实上这是我想要做的一部分。(希望用户在安装过程中输入到EXE的路径)。但是我的理解是,(应用范围)的设置不能在运行时被更改,那么如何使用它来在安装程序中存储EXE路径或服务器连接屏幕?考虑一些类似SQL连接字符串或文件共享的路径。同一程序可以在多个环境中使用,只需更改应用程序设置。如果应用程序范围的设置为只读,这怎么可能?用户将如何更改SQL连接字符串以指向新服务器?这是一段来自MS API的引用“应用程序范围和用户范围设置之间的关键区别在于,用户范围设置是在运行时读/写的,它们的值可以在代码中更改和保存。应用程序范围设置在运行时是只读的。虽然可以读,但不能写。具有应用范围的设置只能在设计时更改,或者手动更改设置文件。“@vanattab from MSDN(重点是我的):”。。。在大多数情况下,应用程序范围的设置是只读的;因为它们是程序信息,您通常不需要覆盖它们…“我的评论中的哪一部分暗示最终用户正在更改应用程序设置?”在多个环境中使用“显然暗示管理员类型配置”。@vanattab请看下面这篇文章: