如何通过app.config变量覆盖settings.settings变量

如何通过在生产中向app.config添加变量来更改(或覆盖)settings.settings变量?

这还有可能吗?

您必须直接引用您尝试覆盖的applicationSettings并显式指定具有替换值的属性。

      
new string value

对于应用程序范围连接字符串值:

     

这取决于设置的范围。 如果其应用程序范围设置在app.config中更改其值就足够了。

但是,如果它是用户范围设置,则app.config中存在的值只是新用户使用的默认值,并且已经使用该应用程序的每个用户都将当前使用的值存储在单独的文件user.config中,所以更改app.config中的值对已经运行一次应用程序的用户没有任何影响。

由于这种变化,用户范围设置的值可能是一项麻烦的任务。 有关更改用户范围设置的更多信息,请查看以下答案:

更改用户范围应用程序设置

使用不同的配置文件进行生产并为您服务。 基本上在生产中你可以在RELEASE中编译,所以如果你使用Visual Studio,使用post build事件来复制RELEASE配置文件,以防你准备生产版本。

我更喜欢这个,而不是从代码中更改它,因为其他人更容易在配置文件中看到差异,然后深入到代码中找到所有if/else东西。

只通过代码:

例如

  if (bool.Parse(ConfigurationManager.AppSettings["overridethis"].ToString())) { //use overridden value } 

但是,如果您的问题是在不同的环境中维护不同的配置值,那么我会使用AppSettings。

然后,您可以使用开发人员覆盖文件。

   

请参阅http://www.compiledthoughts.com/2005/03/overriding-webconfig-app-settings-with.html