2

有人可以告诉我如何处理 app.config 吗?当我在 app.Properties 中创建一些值时,它会自行创建。我将代码文件设置为“CopyAlways”。但是,当我在调试或发布模式下编译应用程序,手动编辑配置(使用记事本)并启动应用程序时,它的行为就像配置文件没有变化一样。我尝试更改 app.config、appname.exe.config 甚至 appname.vschost.exe.config。

对我来说更有趣的是,我可以构建一个应用程序,然后将没有任何配置文件的源文件(appname.exe 和 dll 文件)复制到任何新文件夹,然后启动一个应用程序。它连接到服务器,尽管事实上没有配置,IP 存储在哪里。

我只发现有关在运行时通过代码更改 app.config 的问题。但这不是我想要的。我有数据配置,变化不大。和 .settings 用户设置(数据网格中记录的颜色等)。

我坚持,每次应用程序启动时都会读取该配置。我真的必须创建自己的配置文件,该文件将与 exe 位于同一文件夹中,并且每次应用程序启动时都会读取?

我在 msdn 上找到的唯一支持是如何创建 app.config。

4

3 回答 3

1

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

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

如果您稍后更改YourAppName.exe.config中的值,这将在您启动应用程序时可见,而无需重新构建。

于 2019-04-08T07:04:15.217 回答
0

您不需要复制您的 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

于 2013-02-07T11:21:10.087 回答
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 的路径。如果是这样,请将其删除或更改此文件中的设置。

于 2013-02-07T11:25:55.073 回答