在几个C#项目中,我一直在使用app.config文件将各种设置传递给我的程序,连接字符串,功率级别等设置。
然而,有时我会遇到设置未按预期更新的情况,并且我得出的结论是,我并没有充分了解正确使用app.config文件。
示例:
所以我的问题是:
ConfigurationManager.'settingName'...
而不是:
Properties.Settings.Default.'settingName'
?build action
的作用是什么?抱歉,如果我在一个问题中要求太多。
答案 0 :(得分: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.exe
并保持MyApp.exe.config
完整,则不应看到应用程序使用的设置发生更改(当然,除非您重命名或更改了某些设置)。
清单文件提供有关并排程序集的信息,可用于请求提升权限等。这与app.config文件无关。
答案 1 :(得分:0)
有相关的资源。
请参阅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是一个非常强大的工具。它解决了许多问题,如版本控制,迁移,升级等,但这需要从上面的链接中深入阅读。
答案 2 :(得分:-1)
也许你可以做的一件事,如果你想在每次构建应用程序时只复制.exe文件,请创建一个settings.ini或settings.txt文件,将你的参数放在这个文件中(这不是秘密的)当然)并在您启动应用程序时从那里读取所有设置。 您可以将所有连接字符串逻辑放在登录表单中,如果有的话......