有人可以告诉我如何用app.config来对待?当我在app.Properties中创建一些值时,它就会自行创建。我将代码文件设置为“CopyAlways”。但是,当我在调试或发布模式下编译应用程序时,编辑配置manualy(使用记事本)并启动应用程序,它的行为就像配置文件中没有任何更改。我试图更改app.config,appname.exe.config甚至appname.vschost.exe.config。
对我来说更有趣的是,我可以构建一个应用程序,然后将源文件(appname.exe和dll文件)复制到任何新文件夹,无需任何配置文件,并启动应用程序。它连接到服务器,尽管事实上,没有配置,存储IP的位置。
我发现只有在运行时通过代码更改app.config的问题。但这不是我想要的。我有数据配置,不会改变很多。和.settings用户设置(数据网格中的记录颜色等)。
我想,每次应用程序启动时都会读取配置。我是否真的必须创建自己的配置文件,它将与exe在同一个文件夹中,并且每次应用程序启动时都会读取?
我在msdn上找到的支持只是如何创建app.config。
UserScope中应用程序的设置存储在Application.LocalUserAppDataPath下(通常这是C:\Documents and Settings\username\Local Settings\Application Data\
作为基本路径+以下架构\CompanyName\ProductName\ProductVersion
)。因此,当您运行应用程序时,user.config将存储在此文件夹中,并用于进一步启动应用程序。
如果在上面的路径中找不到user.config,则应用程序的app.config仅包含默认值。
如果您的应用程序有.config文件,请打开资源管理器并检查Application.LocalUserAppDataPath的路径。如果是,请将其删除或更改此文件中的设置。
您无需复制app.config或将其设置为“CopyAlways”。
当您构建visual studio copy时,它会自动将其重命名为applicationName.exe.config
因此,如果您的应用程序是:MyApplication.exe,您应该在bin中找到文件MyApplication.exe.config
您将app.config与应用程序设置混淆,应用程序设置存储在UserProfile目录中的user.config文件中。
Application Settings Architecture
它们旨在用于存储用户偏好作为背景颜色,可视化偏好等
相反,如果您希望配置值易于更改,则应使用app.config中的appSettings节点
<appSettings>
<add key="ServerIp" value="0.0.0.0"/>
</appSettings>
并从您的代码访问它:
ConfigurationManager.AppSettings["ServerIp"]
您不应将App.config的属性更改为“始终复制”。
构建应用程序时,编译器会在输出目录中创建一个YourAppName.exe.config文件,该文件包含与App.config文件完全相同的值。
如果以后更改YourAppName.exe.config中的值,则在启动应用程序时将显示该值,而无需重建。