
Best Approach For Configuring Multiple .Net Applications我们有一套相互链接的.Net 3.5应用程序。有些是网站,有些是Web服务,有些是Windows应用程序。每个应用程序当前都有其自己的配置文件(app.config或web.config),并且由于多个应用程序需要相同的配置值,因此当前在配置文件中有一些重复的密钥(此刻它们现在手动保持同步)。此外,这套应用程序套件可在各种环境(开发,测试,实时等)中部署 从单个配置源管理这些多个应用程序的配置的最佳方法是什么,因此如果需要,可以在多个应用程序之间共享配置值?我们还希望为每个环境提供单独的配置(因此在部署时,您不必手动更改某些特定于环境的配置值,例如连接字符串),但同时又不想维护多个大型配置文件(每个环境一个),因为在添加新的配置密钥时保持同步是很麻烦的。 Visual Studio具有相对模糊的功能,可让您将现有项目添加为链接,从而可以完成所需的功能。请查看Derik Whittaker关于该主题的文章,以获取更多详细信息。 Visual Studio确实应该使此选项更加可见。没有人真正想到单击"添加"按钮旁边的那个小箭头。 您可以将App.config拆分为多个配置文件。您只需指定包含config节的文件的名称。 更改app.config:
进入app.config和SomeSetting.xml:
其中SomeSetting.xml包含: 现在,您可以使用某种构建或部署脚本从不同的分区文件中构成app.config。例如。:
这两个问题可能对您有所帮助:针对大型项目使用machine.config和管理app.config 我们将文件模板(例如MyApp.config.template和MyWeb.config.template)与NAnt属性一起使用,以获取环境之间不同的位。因此,模板文件可能看起来像这样:
在构建过程中,我们仅通过在NAnt脚本中循环遍历每个环境,并为每个环境更改NAnt属性$ {DbConnString}和$ {WebServiceUri}的值来生成针对不同环境的所有配置(实际上,这些都在一个单独的文件,其中包含每个环境的相应部分),并进行NAnt复制并打开扩展属性选项。 花费了一些时间进行设置,但它使我们节省了至少十倍的时间,以节省处理不同版本的配置文件的时间。 从Microsoft的模式和实践小组检查棱镜框架吗? |