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