有关.NET配置文件的说明

时间:2014-11-27 21:39:11

标签: .net web-config app-config

我对.NET项目中的app.config和web.config文件有几个问题。

1.如果我有一个主要项目引用一个辅助项目,并且每个项目都有自己的设置部分,有没有办法可以自动将引用的项目设置复制到主app.config?

  1. 如果我从prod环境中删除配置文件,我的程序集将加载编译时它具有的默认值。我可以以某种方式覆盖这种行为吗?

  2. 我可以为同一个项目配置多个配置文件,每个配置文件用于不同的环境吗?就像Debug的配置文件,Release的一个?

1 个答案:

答案 0 :(得分:0)

  1. 仅加载了一个配置文件。如果您需要使用来自其他项目的多个配置文件,则需要以编程方式加载配置。这意味着您可以为每个项目使用不同的配置文件,在构建时将它们复制到最终文件夹中并使用ConfigurationManager加载它们:
  2. ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
    configFile.ExeConfigFilename = "customConfigFile.xml";
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFile,     ConfigurationUserLevel.None);
    System.Configuration.KeyValueConfigurationCollection settings = config.AppSettings.Settings;
    

    您可以加载专用于特定项目的部分:

    config.GetSection("SomeSection")
    

    2/3。要在两个文件之间进行调试和发布,您可以使用上面的示例,并用于在Debug中执行特定代码:

    #define DEBUG
    // ...
    #if DEBUG
        Console.WriteLine("Debug version");
    #endif