Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET控制台应用程序中可以有多个App.Config文件吗?_C#_.net_C# 4.0_Web Config_App Config - Fatal编程技术网

C# 在.NET控制台应用程序中可以有多个App.Config文件吗?

C# 在.NET控制台应用程序中可以有多个App.Config文件吗?,c#,.net,c#-4.0,web-config,app-config,C#,.net,C# 4.0,Web Config,App Config,我有一个带有App.Confile文件的控制台应用程序。 现在,特定于环境的参数将在此处维护 现在我正在考虑使用多个app.config文件(如app.dev.config、app.test.config和app.prod.config),就像我们可以使用多个Web.config文件一样 对于Web应用程序,我们可以处理这个问题,ConfigurationManager将选择相应的Web.Config文件 对于控制台应用程序,我不确定。如果是,我们如何拥有多个app.config文件 谢谢你的帮

我有一个带有App.Confile文件的控制台应用程序。 现在,特定于环境的参数将在此处维护

现在我正在考虑使用多个app.config文件(如app.dev.config、app.test.config和app.prod.config),就像我们可以使用多个Web.config文件一样

对于Web应用程序,我们可以处理这个问题,ConfigurationManager将选择相应的Web.Config文件

对于控制台应用程序,我不确定。如果是,我们如何拥有多个app.config文件

谢谢你的帮助


谢谢更新

通过VisualStudio20102012,您可以看到这一切都已集成到IDE中。如果右键单击配置文件,VS将为您的每个构建配置生成转换配置。如果要为每个环境创建生成配置,MSBuild将自动为您生成正确的Web.config/app.config

简短回答,是的。您可以在构建脚本中使用不同的文件和配置,但是您必须将正确的文件重命名为“App.config”,然后进行设置(在编译之前)

详细回答,您应该使用的是企业库合并配置工具。这允许您使用现有的App.config作为基础,并为每个环境定义增量。该工具将合并基础和增量以生成环境指定的配置文件。在构建脚本中仍然需要一些逻辑来应用正确的配置文件

在计算机上安装Enterprise Library时,可以在Visual Studio中右键单击配置文件,并通过配置工具对其进行编辑。您可以使用它来定义您的环境以及应用程序设置和要覆盖每个环境的连接字符串


根据Babak的回答,您还可以在表示
配置部分的任何元素上使用
configSource
属性,将配置的各个部分分离到其他配置文件中,例如:

<appSettings configSource="appSettings.config" />

在appSettings.config中:



这会处理连接字符串条目吗?您可以这样做:
这很有效。我已将copy$(ProjectDir)app.$(ConfigurationName).config$(ProjectDir)app.config放在Build命令中。
<?xml version="1.0" encoding="UTF-8"?>
<appSettings>
    <add key="Blah" value="Nim nim nim" />
</appSettings>