正确使用app.config

apo*_*ene 6 c# app-config manifest

在几个C#项目中,我一直在使用app.config文件将各种设置传递给我的程序,如连接线,功率等设置.

但是,有时候我会遇到设置未按预期更新的情况,并且我得出的结论是,我并没有充分了解正确使用app.config文件.

例:

  • 将.exe文件替换为输出目录的新版本(其中设置不同)而不更改exe.config,导致程序看到硬编码设置而不是现有.exe.config的设置

所以我的问题是:

  • exe.manifest文件的确切作用是什么
  • 每次我创建一个新的.exe时,我必须在输出文件夹中粘贴除.exe文件以外的任何其他内容吗?
  • 获得设定值的区别在于: ConfigurationManager.'settingName'...而不是: Properties.Settings.Default.'settingName'
  • app.config的作用是build action什么?

对不起如果我在一个问题中要求太多.

Mar*_*age 6

app.config文件是在运行关联的应用程序时获得特殊处理的文件.如果您的可执行文件已命名,MyApp.exe则应该命名app.config文件MyApp.exe.config.app.config构建任务的作用是将app.config项目中指定的文件复制到MyApp.exe.config输出目录中.

.NET提供了读取文件内容的方法(它是XML格式),.NET的各个部分将查找此XML中的不同部分以提供配置.

广泛使用的部分是您所指的设置部分Properties.Settings.Default.本节与Visual Studio一起使用,它为应用程序设置提供编辑器.使用生成的类在代码中访问设置.添加设置将向此类添加属性,并且此属性是从app.config文件中的值初始化的.

在Visual Studio编辑器中,您可以为设置设置值,您可以将其视为设置的默认值.但是,如果覆盖app.config文件中的值,则后者将优先.这允许您在安装后修改app.config文件,并使用修改后的设置重新运行应用程序.

您还可以使用其他方法访问app.config文件的应用程序设置,但在我的意见中使用Visual Studio编辑器和代码生成类是最好的方法.

我不确定我是否完全理解您遇到的问题.如果您更新MyApp.exeMyApp.exe.config保持原样,则不应该看到应用程序使用的设置发生更改(当然,除非您已重命名或更改了某些设置).

清单文件提供有关并排程序集的信息,可用于请求提升权限等.这与app.config文件无关.


Sam*_*uel 1

有很多关于这方面的资源。

请参阅http://msdn.microsoft.com/en-us/library/ms229689%28v=vs.90%29.aspx

和(更好的)概述:http://msdn.microsoft.com/en-us/library/k4s6c3a0%28v=vs.110%29.aspx

app.config 是一个非常强大的工具。它解决了许多问题,例如版本控制、迁移、升级等,但这需要深入阅读上面的链接。