c#发布后没有相关的app.config

问题描述 投票:2回答:3

有人可以告诉我如何用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。

c# configuration app-config
3个回答
0
投票

UserScope中应用程序的设置存储在Application.LocalUserAppDataPath下(通常这是C:\Documents and Settings\username\Local Settings\Application Data\作为基本路径+以下架构\CompanyName\ProductName\ProductVersion)。因此,当您运行应用程序时,user.config将存储在此文件夹中,并用于进一步启动应用程序。

如果在上面的路径中找不到user.config,则应用程序的app.config仅包含默认值。

如果您的应用程序有.config文件,请打开资源管理器并检查Application.LocalUserAppDataPath的路径。如果是,请将其删除或更改此文件中的设置。


0
投票

您无需复制app.config或将其设置为“CopyAlways”。

当您构建visual studio copy时,它会自动将其重命名为applicationName.exe.config

因此,如果您的应用程序是:MyApplication.exe,您应该在bin中找到文件MyApplication.exe.config

您将app.config与应用程序设置混淆,应用程序设置存储在UserProfile目录中的user.config文件中。

Application Settings Overview

Application Settings Architecture

它们旨在用于存储用户偏好作为背景颜色,可视化偏好等

相反,如果您希望配置值易于更改,则应使用app.config中的appSettings节点

    <appSettings>
    <add key="ServerIp" value="0.0.0.0"/>
</appSettings>

并从您的代码访问它:

ConfigurationManager.AppSettings["ServerIp"]

ConfigurationManager.AppSettings


0
投票

您不应将App.config的属性更改为“始终复制”。

构建应用程序时,编译器会在输出目录中创建一个YourAppName.exe.config文件,该文件包含与App.config文件完全相同的值。

如果以后更改YourAppName.exe.config中的值,则在启动应用程序时将显示该值,而无需重建。

© www.soinside.com 2019 - 2024. All rights reserved.