关于.NET配置文件的澄清

关于.NET配置文件的澄清,.net,web-config,app-config,.net,Web Config,App Config,关于.NET项目中的app.config和web.config文件,我有几个问题 1.如果我有一个主项目引用一个侧项目,并且每个主项目都有自己的设置部分,是否有任何方法可以自动将引用项目的设置复制到主app.config 如果我从prod环境中删除配置文件,我的程序集将加载编译期间的默认值。我能以某种方式克服这种行为吗 我可以为相同的项目拥有多个配置文件吗?每个配置文件针对不同的环境?比如一个用于调试的配置文件,一个用于发布 仅加载一个配置文件。如果需要使用来自其他项目的多个配置文件,则需要加载

关于.NET项目中的app.config和web.config文件,我有几个问题

1.如果我有一个主项目引用一个侧项目,并且每个主项目都有自己的设置部分,是否有任何方法可以自动将引用项目的设置复制到主app.config

  • 如果我从prod环境中删除配置文件,我的程序集将加载编译期间的默认值。我能以某种方式克服这种行为吗

  • 我可以为相同的项目拥有多个配置文件吗?每个配置文件针对不同的环境?比如一个用于调试的配置文件,一个用于发布

  • 仅加载一个配置文件。如果需要使用来自其他项目的多个配置文件,则需要加载配置程序Maticali。这意味着您可以为每个项目使用不同的配置文件,在生成时将其复制到最终文件夹中,并使用ConfigurationManager加载它们:
  • ExeConfigurationFileMap configFile=new ExeConfigurationFileMap();
    configFile.ExeConfigFilename=“customConfigFile.xml”;
    Configuration config=ConfigurationManager.OpenMappedExeConfiguration(配置文件,ConfigurationUserLevel.None);
    System.Configuration.KeyValueConfigurationCollection settings=config.AppSettings.settings;
    
    您可以加载专用于特定项目的节:

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

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