我正在创建一个类库项目。现在默认情况下,我有一个App.Config文件,这样我就可以将所有特定于环境的数据放入该配置文件中。
现在基于环境(无论是开发/测试/生产),我计划在VS2010中有三个App.Config文件,例如
App.Dev.Config
App.Test.Config
App.Prod.Config
想知道应用程序如何知道使用哪个配置文件。
任何人都实现了这个场景。任何代码示例/文章都会很有帮助。
谢谢
我正在创建一个类库项目。现在默认情况下,我有一个App.Config文件,这样我就可以将所有特定于环境的数据放入该配置文件中。
现在基于环境(无论是开发/测试/生产),我计划在VS2010中有三个App.Config文件,例如
App.Dev.Config
App.Test.Config
App.Prod.Config
想知道应用程序如何知道使用哪个配置文件。
任何人都实现了这个场景。任何代码示例/文章都会很有帮助。
谢谢
3条答案
按热度按时间93ze6v8z1#
应用程序将使用名为YourExcectable.exe.config的配置文件,默认情况下,该文件是包含在您的(可执行)项目中的App.config文件。请注意,.NET仅为整个应用程序加载一个配置文件。您不能在未编码的情况下使用多个配置文件(即每个库项目一个)。
1.选项:可以使用生成后事件和不同的解决方案配置将一个或另一个App.config文件复制到输出文件夹
1.选项:可以使用ConfigurationManager类按代码加载备用配置文件。
flvlnr442#
可以使用Map配置文件的概念在运行时加载不同的应用程序配置文件。首先,需要在项目中添加对System.Configuration.dll的引用。
将复制到输出目录属性的值设置为如果更新则复制(请参阅屏幕截图)。仅对非默认配置文件(如App1.config、App2.config等)执行此操作。保留默认配置文件(即App.config)不变。由于此更改,生成项目时,项目输出目录(\bin\debug)中将提供所有非默认应用程序配置文件。此属性的默认值为不复制。
以下是有关如何从非默认配置文件读取配置数据的代码片段:
如果您有多个应用程序(又名应用程序)配置文件,则可以在默认App.config文件中保留一个设置,借助该设置,您可以在运行时决定要加载哪个非默认配置文件,例如App1.config
注意:现在查看以下代码:
此代码仍将从默认的App.config文件读取数据。此行为无法更改。无法禁止加载默认的App.config文件。您必须使用本文中讨论的其他方法从非默认配置文件读取数据
idfiyjo83#
现在有一个更好的解决方案:SlowCheetah - XML Transforms